home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 January
/
EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso
/
earcd
/
apus
/
boothack
/
old
/
bh980723.lha
/
bh980723
/
linuxboot.s
< prev
next >
Wrap
Text File
|
1997-02-22
|
99KB
|
7,212 lines
#NO_APP
gcc2_compiled.:
___gnu_compiled_c:
.data
.even
_boardresetdb:
.word 2145
.word 33
.long LC0
.long _reset_rb3
.word 2195
.word 6
.long LC1
.long _reset_piccolo
.word 2195
.word 11
.long LC2
.long _reset_sd64
.word 2167
.word 201
.long LC3
.long _reset_ariadne
.word 2121
.word 1
.long LC4
.long _reset_hydra
.text
LC4:
.ascii "Hydra\0"
LC3:
.ascii "Ariadne\0"
LC2:
.ascii "SD64\0"
LC1:
.ascii "Piccolo\0"
LC0:
.ascii "Rainbow 3\0"
.globl _amiga_models
.data
.even
_amiga_models:
.long LC5
.long LC6
.long LC7
.long LC8
.long LC9
.long LC10
.long LC11
.long LC12
.long LC13
.long LC14
.long LC15
.long LC16
.long LC17
.long LC18
.long LC19
.text
LC19:
.ascii "Draco\0"
LC18:
.ascii "CD32\0"
LC17:
.ascii "CDTV\0"
LC16:
.ascii "Amiga 4000T\0"
LC15:
.ascii "Amiga 4000\0"
LC14:
.ascii "Amiga 3000+\0"
LC13:
.ascii "Amiga 3000T\0"
LC12:
.ascii "Amiga 3000\0"
LC11:
.ascii "Amiga 2500\0"
LC10:
.ascii "Amiga 2000\0"
LC9:
.ascii "Amiga 1200\0"
LC8:
.ascii "Amiga 1000\0"
LC7:
.ascii "Amiga 600\0"
LC6:
.ascii "Amiga 500+\0"
LC5:
.ascii "Amiga 500\0"
.globl _first_amiga_model
.even
_first_amiga_model:
.long 1
.globl _last_amiga_model
.even
_last_amiga_model:
.long 15
LC20:
.ascii "\12Linux/m68k Amiga Bootstrap version 5.5\12\0"
LC21:
.ascii "Copyright 1993,1994 by Hamish Macdonald and Greg Harp\12\12\0"
LC22:
.ascii "Warning: too many AutoConfig devices. Ignoring device at 0x%08lx\12\0"
LC23:
.ascii "A3640 MapROM detected.\12\0"
LC24:
.ascii "A3000 shadowed Kickstart detected.\12\0"
LC25:
.ascii "ZKick detected.\12\0"
LC26:
.ascii "Warning: too many memory blocks. Ignoring block of %ldK at 0x%08x\12\0"
LC27:
.ascii "%s \0"
LC28:
.ascii "Amiga \0"
LC29:
.ascii "CPU: \0"
LC30:
.ascii "68020 (Do you have an MMU?)\0"
LC31:
.ascii "68030\0"
LC32:
.ascii "68040\0"
LC33:
.ascii "68060\0"
LC34:
.ascii "Insufficient for Linux. Aborting...\12\0"
LC35:
.ascii "SysBase->AttnFlags = 0x%08lx\12\0"
LC36:
.ascii " with 68881 FPU\0"
LC37:
.ascii " with 68882 FPU\0"
LC38:
.ascii " with internal FPU\0"
LC39:
.ascii " without FPU\0"
LC40:
.ascii ", old or unknown chipset\0"
LC41:
.ascii ", OCS\0"
LC42:
.ascii ", ECS\0"
LC43:
.ascii ", AGA chipset\0"
LC44:
.ascii "\12\12\0"
LC45:
.ascii "Command line is '%s'\12\0"
LC46:
.ascii "Vertical Blank Frequency: %ldHz\12\0"
LC47:
.ascii "Power Supply Frequency: %ldHz\12\0"
LC48:
.ascii "EClock Frequency: %ldHz\12\12\0"
LC49:
.ascii "s\0"
LC50:
.ascii "\0"
LC51:
.ascii "Found %ld AutoConfig Device%s\12\0"
LC52:
.ascii "Device %ld: addr = 0x%08lx\0"
LC53:
.ascii " [%s - will be reset at kernel boot time]\0"
LC54:
.ascii "No AutoConfig Devices Found\12\0"
LC55:
.ascii "s \0"
LC56:
.ascii " \0"
LC57:
.ascii "\12Found %ld Block%sof Memory\12\0"
LC58:
.ascii "Block %ld: 0x%08lx to 0x%08lx (%ldK)\12\0"
LC59:
.ascii "No memory found?! Aborting...\12\0"
LC60:
.ascii "%ldK of CHIP memory\12\0"
LC61:
.ascii "\12The kernel will be located at 0x%08lx\12\0"
LC62:
.ascii "Not enough Chip RAM in this system. Aborting...\12\0"
LC63:
.ascii "Not enough Fast RAM in this system. Aborting...\12\0"
LC64:
.ascii "Unable to find size of ramdisk file `%s'\12\0"
LC65:
.ascii "Unable to open kernel file `%s'\12\0"
LC66:
.ascii "Unable to read exec header from kernel file\12\0"
LC67:
.ascii "Kernel is compressed\12\0"
LC68:
.ascii "Decompression error -- aborting\12\0"
LC69:
.ascii "\12Loading a.out (ZMAGIC) Linux/m68k kernel...\12\0"
LC70:
.ascii "\12Loading a.out (QMAGIC) Linux/m68k kernel...\12\0"
LC71:
.ascii "\177ELF\0"
LC72:
.ascii "\12Loading ELF Linux/m68k kernel...\12\0"
LC73:
.ascii "Invalid ELF header contents in kernel\12\0"
LC74:
.ascii "Unable to allocate memory for program headers\12\0"
LC75:
.ascii "Unable to read program headers from kernel file\12\0"
LC76:
.ascii "Wrong magic number 0x%08lx in kernel header\12\0"
LC77:
.ascii "Unable to allocate memory\12\0"
LC78:
.ascii "Failed to seek to segment %ld\12\0"
LC79:
.ascii "Failed to read segment %ld\12\0"
LC80:
.ascii "Failed to seek to text\12\0"
LC81:
.ascii "Failed to read text\12\0"
LC82:
.ascii "Failed to read data\12\0"
LC83:
.ascii "Unable to open ramdisk file `%s'\12\0"
LC84:
.ascii "Failed to read ramdisk file\12\0"
LC85:
.ascii "Unable to allocate memory for stack\12\0"
LC86:
.ascii "Unable to allocate memory for startcode\12\0"
LC87:
.ascii "RAM disk at 0x%08lx, size is %ldK\12\0"
LC88:
.ascii "Kernel segment %ld at 0x%08lx, size %ld\12\0"
LC89:
.ascii "Boot info at 0x%08lx\12\0"
LC90:
.ascii "\12Kernel text at 0x%08lx, code size 0x%08lx\12\0"
LC91:
.ascii "Kernel data at 0x%08lx, data size 0x%08lx\12\0"
LC92:
.ascii "Kernel bss at 0x%08lx, bss size 0x%08lx\12\0"
LC93:
.ascii "Boot info at 0x%08lx\12\0"
LC94:
.ascii "\12Kernel entry is 0x%08lx\12\0"
LC95:
.ascii "ramdisk dest top is 0x%08lx\12\0"
LC96:
.ascii "ramdisk lower limit is 0x%08lx\12\0"
LC97:
.ascii "ramdisk src top is 0x%08lx\12\0"
LC98:
.ascii "\12Type a key to continue the Linux/m68k boot...\0"
.even
.globl _linuxboot
_linuxboot:
link a5,#-144
moveml #0x3820,sp@-
moveq #-1,d4
movel d4,a5@(-4)
moveq #-1,d4
movel d4,a5@(-8)
clrl a5@(-12)
clrl a5@(-36)
clrl a5@(-40)
clrl a5@(-44)
clrl a5@(-80)
clrl a5@(-84)
clrl a5@(-88)
movel a5@(8),_linuxboot_args
movel _linuxboot_args,a0
pea LC20
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
pea LC21
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel a5@(8),d0
pea 1428:w
pea _bi
movel d0,sp@-
jbsr _bcopy
addqw #8,sp
addqw #4,sp
moveq #1,d4
movel d4,_bi
tstl _bi+1422
jne L20
jbsr _get_chipset
movel d0,_bi+1422
L20:
tstl _bi+4
jne L21
pea _bi+12
pea _bi+8
pea _bi+4
jbsr _get_processor
addqw #8,sp
addqw #4,sp
L21:
tstl _bi+316
jne L22
movel _bi+1422,sp@-
jbsr _get_model
addqw #4,sp
movel d0,_bi+316
L22:
tstl _bi+316
jeq L23
moveq #1,d1
movel d1,d0
movel _bi+316,d4
asll d4,d0
jra L24
L23:
clrl d0
L24:
movel d0,a5@(-52)
tstl _bi+320
jne L25
clrl a5@(-24)
L26:
pea -1:w
pea -1:w
movel a5@(-36),sp@-
jbsr _FindConfigDev
addqw #8,sp
addqw #4,sp
movel d0,a5@(-36)
tstl a5@(-36)
jne L29
jra L27
L29:
moveq #15,d4
cmpl _bi+320,d4
jlt L30
pea 68:w
movel a5@(-36),sp@-
movel _bi+320,d0
movel d0,d2
movel d2,d1
asll #4,d1
addl d0,d1
movel d1,d0
asll #2,d0
movel d0,d1
addl #_bi+324,d1
movel d1,sp@-
addql #1,_bi+320
jbsr _memcpy
addqw #8,sp
addqw #4,sp
jra L31
L30:
movel _linuxboot_args,a0
movel a5@(-36),a1
movel a1@(32),sp@-
pea LC22
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
L31:
L28:
addql #1,a5@(-24)
jra L26
L27:
L25:
tstl _bi+16
seq d0
moveb d0,d4
extbl d4
movel d4,a5@(-16)
movel a5@(-16),d0
negl d0
movel d0,a5@(-16)
tstl _bi+1412
seq d0
moveb d0,d4
extbl d4
movel d4,a5@(-20)
movel a5@(-20),d0
negl d0
movel d0,a5@(-20)
movel _SysBase,a0
movel a0@(322),a5@(-32)
L32:
movel a5@(-32),a0
tstl a0@
jne L35
jra L33
L35:
movel a5@(-32),d0
movel d0,a0
lea a5@(-132),a1
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movel a0@,a1@
addqw #4,a1
addqw #4,a0
movew a5@(-118),d0
andw #1,d0
tstw d0
jne L36
jra L34
L36:
cmpl #133693440,a5@(-108)
jne L37
movel a5@(-52),d0
andl #6912,d0
tstl d0
jeq L37
moveq #4,d0
andl _bi+4,d0
tstl d0
jeq L38
pea __maprommed
jbsr _Supervisor
addqw #4,sp
tstl d0
jeq L38
movel _linuxboot_args,a0
pea LC23
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L39
L38:
movel a5@(-52),d0
andl #768,d0
tstl d0
jeq L40
movel #134217728,a5@(-108)
movel _linuxboot_args,a0
pea LC24
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L40:
L39:
L37:
cmpl #2621472,a5@(-112)
jne L41
moveb a5@(-49),d0
andb #210,d0
tstb d0
jeq L41
movel #2097152,a5@(-112)
movel _linuxboot_args,a0
pea LC25
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L41:
andw #61440,a5@(-106)
andw #61440,a5@(-110)
tstl a5@(-16)
jeq L42
movew a5@(-118),d0
andw #4,d0
tstw d0
jeq L42
movel a5@(-108),d0
subl a5@(-112),d0
movel d0,d4
andl #-262144,d4
movel d4,a5@(-136)
tstl a5@(-136)
jeq L43
moveq #3,d4
cmpl _bi+16,d4
jlt L44
movel _bi+16,d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _bi,a0
movel a5@(-112),a0@(20,d0:l)
movel _bi+16,d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _bi,a0
movel a5@(-136),a0@(24,d0:l)
addql #1,_bi+16
jra L45
L44:
movel _linuxboot_args,a0
movel a5@(-112),sp@-
movel a5@(-136),d1
movel d1,d0
moveq #10,d4
lsrl d4,d0
movel d0,sp@-
pea LC26
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
L45:
L43:
jra L46
L42:
tstl a5@(-20)
jeq L47
movew a5@(-118),d0
andw #2,d0
tstw d0
jeq L47
movel a5@(-108),_bi+1412
L47:
L46:
L34:
movel a5@(-32),a0
movel a0@,a5@(-32)
jra L32
L33:
tstb _bi+1416
jne L48
movel _SysBase,a0
moveb a0@(530),_bi+1416
L48:
tstb _bi+1417
jne L49
movel _SysBase,a0
moveb a0@(531),_bi+1417
L49:
tstl _bi+1418
jne L50
movel _SysBase,a0
movel a0@(568),_bi+1418
L50:
tstw _bi+1426
jne L51
movel _linuxboot_args,a0
movel a0@(1448),d0
movel _linuxboot_args,a0
tstl a0@(1448)
jne L52
movel #9600,d0
L52:
movel d0,a5@(-76)
movel _bi+1418,d1
movel d1,d2
movel d2,d0
asll #2,d0
addl d1,d0
movel a5@(-76),d2
movel d2,d1
lsrl #1,d1
movel d0,d2
addl d1,d2
movel d2,d1
divull a5@(-76),d0:d1
movew d1,d4
subqw #1,d4
movew d4,_bi+1426
L51:
movel _bi+316,d4
cmpl _first_amiga_model,d4
jcs L53
movel _bi+316,d4
cmpl _last_amiga_model,d4
jhi L53
movel _linuxboot_args,a0
movel _bi+316,d0
subl _first_amiga_model,d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _amiga_models,a1
movel a1@(d0:l),sp@-
pea LC27
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L54
L53:
movel _linuxboot_args,a0
pea LC28
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L54:
movel _linuxboot_args,a0
pea LC29
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _bi+4,d0
moveq #2,d4
cmpl d0,d4
jeq L57
moveq #2,d4
cmpl d0,d4
jcs L63
moveq #1,d4
cmpl d0,d4
jeq L56
jra L60
L63:
moveq #4,d4
cmpl d0,d4
jeq L58
moveq #8,d4
cmpl d0,d4
jeq L59
jra L60
L56:
movel _linuxboot_args,a0
pea LC30
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L55
L57:
movel _linuxboot_args,a0
pea LC31
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L55
L58:
movel _linuxboot_args,a0
pea LC32
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L55
L59:
movel _linuxboot_args,a0
pea LC33
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L55
L60:
movel _linuxboot_args,a0
pea LC34
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
movel _SysBase,a1
clrl d0
movew a1@(296),d0
movel d0,sp@-
pea LC35
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L55:
movel _bi+8,d0
moveq #2,d4
cmpl d0,d4
jeq L66
moveq #2,d4
cmpl d0,d4
jcs L71
moveq #1,d4
cmpl d0,d4
jeq L65
jra L69
L71:
moveq #4,d4
cmpl d0,d4
jeq L67
moveq #8,d4
cmpl d0,d4
jeq L68
jra L69
L65:
movel _linuxboot_args,a0
pea LC36
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L64
L66:
movel _linuxboot_args,a0
pea LC37
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L64
L67:
L68:
movel _linuxboot_args,a0
pea LC38
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L64
L69:
movel _linuxboot_args,a0
pea LC39
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L64
L64:
movel _bi+1422,d0
moveq #1,d4
cmpl d0,d4
jeq L74
moveq #1,d4
cmpl d0,d4
jhi L73
moveq #2,d4
cmpl d0,d4
jeq L75
moveq #3,d4
cmpl d0,d4
jeq L76
jra L78
L73:
movel _linuxboot_args,a0
pea LC40
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L72
L74:
movel _linuxboot_args,a0
pea LC41
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L72
L75:
movel _linuxboot_args,a0
pea LC42
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L72
L76:
movel _linuxboot_args,a0
pea LC43
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L72
L78:
L72:
movel _linuxboot_args,a0
pea LC44
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
pea _bi+60
pea LC45
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
clrl d0
moveb _bi+1416,d0
movel d0,sp@-
pea LC46
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
clrl d0
moveb _bi+1417,d0
movel d0,sp@-
pea LC47
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
movel _bi+1418,sp@-
pea LC48
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
tstl _bi+320
jeq L79
movel _linuxboot_args,a0
moveq #1,d4
cmpl _bi+320,d4
jge L80
movel #LC49,d0
jra L81
L80:
movel #LC50,d0
L81:
movel d0,sp@-
movel _bi+320,sp@-
pea LC51
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
clrl a5@(-24)
L82:
movel a5@(-24),d4
cmpl _bi+320,d4
jlt L85
jra L83
L85:
movel _linuxboot_args,a0
movel a5@(-24),d0
movel d0,d2
movel d2,d1
asll #4,d1
addl d0,d1
movel d1,d0
asll #2,d0
movel #_bi,d1
movel d1,a1
addl d0,a1
movel a1@(356),sp@-
movel a5@(-24),sp@-
pea LC52
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _boardresetfuncs,a0
clrl a0@(d0:l)
movel _linuxboot_args,a0
tstl a0@(1444)
jeq L86
movel a5@(-24),d0
movel d0,d2
movel d2,d1
asll #4,d1
addl d0,d1
movel d1,d0
asll #2,d0
movel #_bi,d1
movel d1,a0
addl d0,a0
movew a0@(344),a5@(-94)
movel a5@(-24),d0
movel d0,d2
movel d2,d1
asll #4,d1
addl d0,d1
movel d1,d0
asll #2,d0
movel #_bi,d1
movel d1,a0
addl d0,a0
moveb a0@(341),a5@(-95)
clrl a5@(-28)
L87:
moveq #4,d4
cmpl a5@(-28),d4
jcc L90
jra L88
L90:
movel a5@(-28),d0
movel d0,d2
movel d2,d1
addl d1,d1
addl d0,d1
movel d1,d0
asll #2,d0
lea _boardresetdb,a0
movew a0@(d0:l),d4
cmpw a5@(-94),d4
jne L91
clrw d0
moveb a5@(-95),d0
movel a5@(-28),d1
movel d1,d3
movel d3,d2
addl d2,d2
addl d1,d2
movel d2,d1
asll #2,d1
lea _boardresetdb,a0
cmpw a0@(2,d1:l),d0
jne L91
movel _linuxboot_args,a0
movel a5@(-28),d0
movel d0,d2
movel d2,d1
addl d1,d1
addl d0,d1
movel d1,d0
asll #2,d0
lea _boardresetdb,a1
movel a1@(4,d0:l),sp@-
pea LC53
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _boardresetfuncs,a0
movel a5@(-28),d1
movel d1,d3
movel d3,d2
addl d2,d2
addl d1,d2
movel d2,d1
asll #2,d1
lea _boardresetdb,a1
movel a1@(8,d1:l),a0@(d0:l)
jra L88
L91:
L89:
addql #1,a5@(-28)
jra L87
L88:
L86:
movel _linuxboot_args,a0
pea 10:w
movel a0@(1460),a2
jbsr a2@
addqw #4,sp
L84:
addql #1,a5@(-24)
jra L82
L83:
jra L92
L79:
movel _linuxboot_args,a0
pea LC54
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L92:
tstl _bi+16
jeq L93
movel _linuxboot_args,a0
moveq #1,d4
cmpl _bi+16,d4
jge L94
movel #LC55,d0
jra L95
L94:
movel #LC56,d0
L95:
movel d0,sp@-
movel _bi+16,sp@-
pea LC57
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
clrl a5@(-24)
L96:
movel a5@(-24),d4
cmpl _bi+16,d4
jlt L99
jra L97
L99:
movel _linuxboot_args,a0
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _bi,a1
movel a1@(24,d0:l),d1
movel d1,d0
moveq #10,d4
lsrl d4,d0
movel d0,sp@-
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _bi,a1
movel a5@(-24),d1
movel d1,d2
movel d2,d1
asll #3,d1
lea _bi,a2
movel a1@(20,d0:l),d0
addl a2@(24,d1:l),d0
movel d0,sp@-
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _bi,a1
movel a1@(20,d0:l),sp@-
movel a5@(-24),sp@-
pea LC58
movel a0@(1464),a2
jbsr a2@
addw #20,sp
L98:
addql #1,a5@(-24)
jra L96
L97:
jra L100
L93:
movel _linuxboot_args,a0
pea LC59
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L100:
movel _linuxboot_args,a0
movel _bi+1412,d1
movel d1,d0
moveq #10,d4
lsrl d4,d0
movel d0,sp@-
pea LC60
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _bi+20,a5@(-60)
movel _bi+24,a5@(-64)
movel _linuxboot_args,a0
movel a5@(-60),sp@-
pea LC61
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
cmpl #524287,_bi+1412
jhi L101
movel _linuxboot_args,a0
pea LC62
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L101:
nop
clrl a5@(-48)
clrl a5@(-24)
L102:
movel a5@(-24),d4
cmpl _bi+16,d4
jlt L105
jra L103
L105:
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _bi,a0
movel a0@(24,d0:l),d4
addl d4,a5@(-48)
L104:
addql #1,a5@(-24)
jra L102
L103:
cmpl #2097151,a5@(-48)
jhi L106
movel _linuxboot_args,a0
pea LC63
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L106:
movel _linuxboot_args,a0
tstl a0@(1432)
jeq L107
movel _linuxboot_args,a0
movel _linuxboot_args,a1
movel a1@(1432),sp@-
movel a0@(1484),a2
jbsr a2@
addqw #4,sp
movel d0,a5@(-136)
moveq #-1,d4
cmpl a5@(-136),d4
jne L108
movel _linuxboot_args,a0
movel _linuxboot_args,a1
movel a1@(1432),sp@-
pea LC64
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L108:
movel a5@(-136),_bi+56
jra L109
L107:
clrl _bi+56
L109:
movel _bi+56,a5@(-68)
movel a5@(-60),d0
addl a5@(-64),d0
movel d0,d4
subl a5@(-68),d4
movel d4,_bi+52
jbsr _create_bootinfo
tstl d0
jne L110
jra L61
L110:
movel _linuxboot_args,a0
movel _linuxboot_args,a1
movel a1@(1428),sp@-
movel a0@(1468),a2
jbsr a2@
addqw #4,sp
movel d0,a5@(-4)
moveq #-1,d4
cmpl a5@(-4),d4
jne L111
movel _linuxboot_args,a0
movel _linuxboot_args,a1
movel a1@(1428),sp@-
pea LC65
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L111:
pea 32:w
pea _kexec
movel a5@(-4),sp@-
jbsr _KRead
addqw #8,sp
addqw #4,sp
moveq #32,d4
cmpl d0,d4
jeq L112
movel _linuxboot_args,a0
pea LC66
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L112:
cmpb #31,_kexec
jne L113
cmpb #139,_kexec+1
jeq L114
cmpb #158,_kexec+1
jeq L114
jra L113
L114:
movel _linuxboot_args,a0
pea LC67
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel a5@(-4),sp@-
jbsr _load_zkernel
addqw #4,sp
tstl d0
jeq L115
movel _linuxboot_args,a0
pea LC68
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L115:
L113:
movel _kexec,d0
andl #65535,d0
cmpl #204,d0
jeq L123
cmpl #267,d0
jeq L117
jra L125
L117:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L118
movel _linuxboot_args,a0
pea LC69
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L118:
movel _kexec,d0
andl #65535,d0
cmpl #267,d0
jeq L119
movel _kexec,d0
andl #65535,d0
cmpl #204,d0
jeq L121
moveq #32,d0
jra L122
L121:
clrl d0
L122:
jra L120
L119:
movel #1024,d0
L120:
movel d0,a5@(-84)
jra L116
L123:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L124
movel _linuxboot_args,a0
pea LC70
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L124:
moveq #32,d4
movel d4,a5@(-84)
moveq #-32,d4
addl d4,_kexec+4
jra L116
L125:
clrl sp@-
movel a5@(-4),sp@-
jbsr _KSeek
addqw #8,sp
pea 52:w
pea _kexec_elf
movel a5@(-4),sp@-
jbsr _KRead
addqw #8,sp
addqw #4,sp
moveq #52,d4
cmpl d0,d4
jne L126
pea 4:w
pea LC71
pea _kexec_elf
jbsr _memcmp
addqw #8,sp
addqw #4,sp
tstl d0
jne L126
moveq #1,d4
movel d4,a5@(-12)
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L127
movel _linuxboot_args,a0
pea LC72
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L127:
cmpw #2,_kexec_elf+16
jne L129
cmpw #4,_kexec_elf+18
jne L129
moveq #1,d4
cmpl _kexec_elf+20,d4
jne L129
jra L128
L129:
movel _linuxboot_args,a0
pea LC73
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L128:
movel #65541,sp@-
clrl d0
movew _kexec_elf+44,d0
movel d0,d1
asll #5,d1
movel d1,sp@-
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,a5@(-88)
tstl d1
jne L130
movel _linuxboot_args,a0
pea LC74
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L130:
movel _kexec_elf+28,sp@-
movel a5@(-4),sp@-
jbsr _KSeek
addqw #8,sp
clrl d0
movew _kexec_elf+44,d0
movel d0,d1
asll #5,d1
movel d1,sp@-
movel a5@(-88),sp@-
movel a5@(-4),sp@-
jbsr _KRead
addqw #8,sp
addqw #4,sp
clrl d1
movew _kexec_elf+44,d1
movel d1,d2
asll #5,d2
cmpl d0,d2
jeq L131
movel _linuxboot_args,a0
pea LC75
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L131:
jra L116
L126:
movel _linuxboot_args,a0
movel _kexec,d0
andl #65535,d0
movel d0,sp@-
pea LC76
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L116:
addl #4096,a5@(-60)
addl #-4096,a5@(-64)
tstl a5@(-12)
jne L133
movel _kexec+12,d0
addql #3,d0
moveq #-4,d4
andl d0,d4
movel d4,_kexec+12
L133:
tstl a5@(-12)
jeq L134
moveq #-1,d4
movel d4,a5@(-140)
clrl a5@(-144)
clrl a5@(-24)
L135:
clrl d0
movew _kexec_elf+44,d0
cmpl a5@(-24),d0
jgt L138
jra L136
L138:
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a5@(-140),d4
cmpl a0@(8,d0:l),d4
jls L139
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a0@(8,d0:l),a5@(-140)
L139:
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a5@(-24),d1
movel d1,d2
movel d2,d1
asll #5,d1
movel a5@(-88),a1
movel a0@(8,d0:l),d0
addl a1@(20,d1:l),d0
cmpl a5@(-144),d0
jls L140
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a5@(-24),d1
movel d1,d2
movel d2,d1
asll #5,d1
movel a5@(-88),a1
movel a0@(8,d0:l),d4
addl a1@(20,d1:l),d4
movel d4,a5@(-144)
L140:
L137:
addql #1,a5@(-24)
jra L135
L136:
tstl a5@(-140)
jne L141
movel #4096,a5@(-140)
movel a5@(-88),a0
movel a5@(-88),a1
movel a1@(8),d4
addl #4096,d4
movel d4,a0@(8)
movel a5@(-88),a0
movel a5@(-88),a1
movel a1@(4),d4
addl #4096,d4
movel d4,a0@(4)
movel a5@(-88),a0
movel a5@(-88),a1
movel a1@(16),d4
addl #-4096,d4
movel d4,a0@(16)
movel a5@(-88),a0
movel a5@(-88),a1
movel a1@(20),d4
addl #-4096,d4
movel d4,a0@(20)
L141:
movel a5@(-144),d4
subl a5@(-140),d4
movel d4,a5@(-72)
jra L142
L134:
movel _kexec+4,d0
addl _kexec+8,d0
movel d0,d4
addl _kexec+12,d4
movel d4,a5@(-72)
L142:
movel a5@(-72),d0
addl _bi_size,d0
movel d0,d4
addl a5@(-68),d4
movel d4,a5@(-80)
cmpl #1421,_bi_size
jhi L143
movel a5@(-68),d0
addl #1422,d0
movel a5@(-72),d4
addl d0,d4
movel d4,a5@(-80)
L143:
movel #65541,sp@-
movel a5@(-80),sp@-
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,a5@(-40)
tstl d1
jne L144
movel _linuxboot_args,a0
pea LC77
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L144:
tstl a5@(-12)
jeq L145
clrl a5@(-24)
L146:
clrl d0
movew _kexec_elf+44,d0
cmpl a5@(-24),d0
jgt L149
jra L147
L149:
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a0@(4,d0:l),sp@-
movel a5@(-4),sp@-
jbsr _KSeek
addqw #8,sp
moveq #-1,d4
cmpl d0,d4
jne L150
movel _linuxboot_args,a0
movel a5@(-24),sp@-
pea LC78
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L150:
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a0@(16,d0:l),sp@-
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a0
movel a5@(-40),a1
addl a0@(8,d0:l),a1
lea a1@(-4096),a0
movel a0,sp@-
movel a5@(-4),sp@-
jbsr _KRead
addqw #8,sp
addqw #4,sp
movel a5@(-24),d1
movel d1,d2
movel d2,d1
asll #5,d1
movel a5@(-88),a0
cmpl a0@(16,d1:l),d0
jeq L151
movel _linuxboot_args,a0
movel a5@(-24),sp@-
pea LC79
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L151:
L148:
addql #1,a5@(-24)
jra L146
L147:
jra L152
L145:
movel a5@(-84),sp@-
movel a5@(-4),sp@-
jbsr _KSeek
addqw #8,sp
moveq #-1,d4
cmpl d0,d4
jne L153
movel _linuxboot_args,a0
pea LC80
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L153:
movel _kexec+4,sp@-
movel a5@(-40),sp@-
movel a5@(-4),sp@-
jbsr _KRead
addqw #8,sp
addqw #4,sp
cmpl _kexec+4,d0
jeq L154
movel _linuxboot_args,a0
pea LC81
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L154:
movel _kexec+8,sp@-
movel a5@(-40),d0
addl _kexec+4,d0
movel d0,sp@-
movel a5@(-4),sp@-
jbsr _KRead
addqw #8,sp
addqw #4,sp
cmpl _kexec+8,d0
jeq L155
movel _linuxboot_args,a0
pea LC82
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L155:
L152:
movel a5@(-4),sp@-
jbsr _KClose
addqw #4,sp
moveq #-1,d4
movel d4,a5@(-4)
movel a5@(-40),sp@-
jbsr _check_bootinfo_version
addqw #4,sp
moveq #1,d4
cmpl d0,d4
jeq L158
moveq #2,d4
cmpl d0,d4
jeq L157
jra L160
L157:
movel #_bi_union,a5@(-100)
jra L156
L158:
jbsr _create_compat_bootinfo
tstl d0
jne L159
jra L61
L159:
movel #_compat_bootinfo,a5@(-100)
movel #1422,_bi_size
jra L156
L160:
jra L61
L156:
movel _bi_size,sp@-
movel a5@(-100),sp@-
movel a5@(-40),d0
addl a5@(-72),d0
movel d0,sp@-
jbsr _memcpy
addqw #8,sp
addqw #4,sp
movel _linuxboot_args,a0
tstl a0@(1432)
jeq L162
movel _linuxboot_args,a0
movel _linuxboot_args,a1
movel a1@(1432),sp@-
movel a0@(1468),a2
jbsr a2@
addqw #4,sp
movel d0,a5@(-8)
moveq #-1,d4
cmpl a5@(-8),d4
jne L163
movel _linuxboot_args,a0
movel _linuxboot_args,a1
movel a1@(1432),sp@-
pea LC83
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L61
L163:
movel _linuxboot_args,a0
movel a5@(-68),sp@-
movel a5@(-40),d0
addl a5@(-72),d0
movel d0,d1
addl _bi_size,d1
movel d1,sp@-
movel a5@(-8),sp@-
movel a0@(1476),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
cmpl a5@(-68),d0
jeq L164
movel _linuxboot_args,a0
pea LC84
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L164:
movel _linuxboot_args,a0
movel a5@(-8),sp@-
movel a0@(1480),a2
jbsr a2@
addqw #4,sp
moveq #-1,d4
movel d4,a5@(-8)
L162:
movel #65538,sp@-
pea 256:w
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,a5@(-44)
tstl d1
jne L165
movel _linuxboot_args,a0
pea LC85
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L165:
movel #_copyallend,d4
subl #_copyall,d4
movel d4,a5@(-56)
movel #65538,sp@-
movel a5@(-56),sp@-
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,a5@(-92)
tstl d1
jne L166
movel _linuxboot_args,a0
pea LC86
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L61
L166:
movel a5@(-56),sp@-
pea _copyall
movel a5@(-92),sp@-
jbsr _memcpy
addqw #8,sp
addqw #4,sp
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L167
tstl _bi+56
jeq L168
movel _linuxboot_args,a0
movel _bi+56,d1
movel d1,d0
moveq #10,d4
lsrl d4,d0
movel d0,sp@-
movel a5@(-40),d0
addl a5@(-72),d0
movel d0,sp@-
pea LC87
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
L168:
tstl a5@(-12)
jeq L169
movel _linuxboot_args,a0
pea 10:w
movel a0@(1460),a2
jbsr a2@
addqw #4,sp
clrl a5@(-24)
L170:
clrl d0
movew _kexec_elf+44,d0
cmpl a5@(-24),d0
jgt L173
jra L171
L173:
movel _linuxboot_args,a0
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a1
movel a1@(20,d0:l),sp@-
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #5,d0
movel a5@(-88),a1
movel a5@(-60),a2
addl a1@(8,d0:l),a2
lea a2@(-4096),a1
movel a1,sp@-
movel a5@(-24),sp@-
pea LC88
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #8,sp
L172:
addql #1,a5@(-24)
jra L170
L171:
movel _linuxboot_args,a0
movel a5@(-60),d0
addl a5@(-72),d0
movel d0,sp@-
pea LC89
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L174
L169:
movel _linuxboot_args,a0
movel _kexec+4,sp@-
movel a5@(-60),sp@-
pea LC90
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel _linuxboot_args,a0
movel _kexec+8,sp@-
movel a5@(-60),d0
addl _kexec+4,d0
movel d0,sp@-
pea LC91
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel _linuxboot_args,a0
movel _kexec+12,sp@-
movel a5@(-60),d0
addl _kexec+4,d0
movel d0,d1
addl _kexec+8,d1
movel d1,sp@-
pea LC92
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel _linuxboot_args,a0
movel a5@(-60),d0
addl a5@(-72),d0
movel d0,sp@-
pea LC93
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
L174:
movel _linuxboot_args,a0
tstl a5@(-12)
jeq L175
movel _kexec_elf+24,d0
jra L176
L175:
movel _kexec+20,d0
L176:
movel d0,sp@-
pea LC94
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
movel a5@(-60),d0
addl a5@(-64),d0
movel d0,sp@-
pea LC95
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
movel a5@(-40),d0
addl a5@(-72),d0
movel d0,sp@-
pea LC96
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
movel a5@(-40),d0
addl a5@(-72),d0
movel d0,d1
addl a5@(-68),d1
movel d1,sp@-
pea LC97
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
movel _linuxboot_args,a0
pea LC98
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
movel a0@(1456),a2
jbsr a2@
movel _linuxboot_args,a0
pea 10:w
movel a0@(1460),a2
jbsr a2@
addqw #4,sp
L167:
movel _linuxboot_args,a0
movel #1000000,sp@-
movel a0@(1488),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
tstl a0@(1440)
jne L177
clrl sp@-
jbsr _LoadView
addqw #4,sp
L177:
jbsr _Disable
movel _linuxboot_args,a0
tstl a0@(1444)
jeq L178
clrl a5@(-24)
L179:
movel a5@(-24),d4
cmpl _bi+320,d4
jlt L182
jra L180
L182:
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _boardresetfuncs,a0
tstl a0@(d0:l)
jeq L183
movel a5@(-24),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _boardresetfuncs,a0
movel a5@(-24),d1
movel d1,d3
movel d3,d2
asll #4,d2
addl d1,d2
movel d2,d1
asll #2,d1
movel d1,d2
addl #_bi+324,d2
movel d2,sp@-
movel a0@(d0:l),a2
jbsr a2@
addqw #4,sp
L183:
L181:
addql #1,a5@(-24)
jra L179
L180:
L178:
movew #1023,14676118
pea -1:w
clrl sp@-
jbsr _CacheControl
addqw #8,sp
jbsr _SuperState
jbsr _disable_mmu
movel a5@(-72),sp@-
movel a5@(-68),sp@-
movel a5@(-64),sp@-
movel a5@(-60),sp@-
movel a5@(-40),sp@-
movel a5@(-44),d0
addl #256,d0
movel d0,sp@-
movel a5@(-92),sp@-
jbsr _start_kernel
addw #28,sp
L61:
moveq #-1,d4
cmpl a5@(-4),d4
jeq L184
movel a5@(-4),sp@-
jbsr _KClose
addqw #4,sp
L184:
moveq #-1,d4
cmpl a5@(-8),d4
jeq L185
movel _linuxboot_args,a0
movel a5@(-8),sp@-
movel a0@(1480),a2
jbsr a2@
addqw #4,sp
L185:
tstl a5@(-40)
jeq L186
movel a5@(-80),sp@-
movel a5@(-40),sp@-
jbsr _FreeMem
addqw #8,sp
L186:
tstl a5@(-44)
jeq L187
pea 256:w
movel a5@(-44),sp@-
jbsr _FreeMem
addqw #8,sp
L187:
tstl a5@(-88)
jeq L188
clrl d0
movew _kexec_elf+44,d0
movel d0,d1
asll #5,d1
movel d1,sp@-
movel a5@(-88),sp@-
jbsr _FreeMem
addqw #8,sp
L188:
clrl d0
jra L19
L19:
moveml a5@(-160),#0x41c
unlk a5
rts
.even
_get_chipset:
link a5,#-8
movel _GfxBase,a0
cmpw #38,a0@(20)
jls L190
pea -1:w
jbsr _SetChipRev
addqw #4,sp
moveb d0,a5@(-1)
jra L191
L190:
movel _GfxBase,a0
moveb a0@(236),a5@(-1)
L191:
moveb a5@(-1),d0
andb #12,d0
cmpb #12,d0
jne L192
moveq #3,d1
movel d1,a5@(-6)
jra L193
L192:
moveb a5@(-1),d0
andb #3,d0
cmpb #3,d0
jne L194
moveq #2,d1
movel d1,a5@(-6)
jra L195
L194:
moveb a5@(-1),d0
andb #1,d0
tstb d0
jeq L196
moveq #1,d1
movel d1,a5@(-6)
jra L197
L196:
clrl a5@(-6)
L197:
L195:
L193:
movel a5@(-6),d0
jra L189
L189:
unlk a5
rts
.even
_get_processor:
link a5,#0
movel a5@(8),a0
movel a5@(12),a1
clrl a1@
clrl a0@
movel _SysBase,a0
moveb a0@(297),d0
andb #128,d0
tstb d0
jeq L199
movel a5@(8),a0
moveq #8,d1
movel d1,a0@
jra L200
L199:
movel _SysBase,a0
movew a0@(296),d0
andw #8,d0
tstw d0
jeq L201
movel a5@(8),a0
moveq #4,d1
movel d1,a0@
jra L202
L201:
movel _SysBase,a0
movew a0@(296),d0
andw #4,d0
tstw d0
jeq L203
movel a5@(8),a0
moveq #2,d1
movel d1,a0@
jra L204
L203:
movel _SysBase,a0
movew a0@(296),d0
andw #2,d0
tstw d0
jeq L205
movel a5@(8),a0
moveq #1,d1
movel d1,a0@
L205:
L204:
L202:
L200:
movel a5@(8),a0
moveq #4,d1
cmpl a0@,d1
jeq L207
movel a5@(8),a0
moveq #8,d1
cmpl a0@,d1
jeq L207
jra L206
L207:
movel _SysBase,a0
movew a0@(296),d0
andw #64,d0
tstw d0
jeq L208
movel a5@(12),a0
movel a5@(8),a1
movel a1@,a0@
L208:
jra L209
L206:
movel _SysBase,a0
movew a0@(296),d0
andw #32,d0
tstw d0
jeq L210
movel a5@(12),a0
moveq #2,d1
movel d1,a0@
jra L211
L210:
movel _SysBase,a0
movew a0@(296),d0
andw #16,d0
tstw d0
jeq L212
movel a5@(12),a0
moveq #1,d1
movel d1,a0@
L212:
L211:
L209:
movel a5@(16),a0
movel a5@(8),a1
movel a1@,a0@
L198:
unlk a5
rts
LC99:
.ascii "Amiga model identification:\12\0"
LC100:
.ascii "draco.resource\0"
LC101:
.ascii " Chipset: \0"
LC102:
.ascii "Old or unknown\12\0"
LC103:
.ascii "OCS\12\0"
LC104:
.ascii "cd.device\0"
LC105:
.ascii "ECS\12\0"
LC106:
.ascii "Magic 36.7\0"
LC107:
.ascii "kickad 36.57\0"
LC108:
.ascii "A3000 Bonus\0"
LC109:
.ascii "A3000 bonus\0"
LC110:
.ascii "card.resource\0"
LC111:
.ascii "AGA\12\0"
LC112:
.ascii "A1000 Bonus\0"
LC113:
.ascii "A4000 bonus\0"
LC114:
.ascii "NCR scsi.device\0"
LC115:
.ascii "\12Type a key to continue...\0"
.even
_get_model:
link a5,#-4
movel a2,sp@-
clrl a5@(-4)
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L214
movel _linuxboot_args,a0
pea LC99
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L214:
pea LC100
jbsr _probe_resource
addqw #4,sp
tstl d0
jeq L215
moveq #15,d1
movel d1,a5@(-4)
jra L216
L215:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L217
movel _linuxboot_args,a0
pea LC101
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L217:
movel a5@(8),d0
moveq #1,d1
cmpl d0,d1
jeq L222
moveq #1,d1
cmpl d0,d1
jhi L219
moveq #2,d1
cmpl d0,d1
jeq L226
moveq #3,d1
cmpl d0,d1
jeq L233
jra L245
L219:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L220
movel _linuxboot_args,a0
pea LC102
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L220:
jra L221
jra L218
L222:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L223
movel _linuxboot_args,a0
pea LC103
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L223:
nop
L221:
pea LC104
jbsr _probe_resident
addqw #4,sp
tstl d0
jeq L224
moveq #13,d1
movel d1,a5@(-4)
jra L225
L224:
moveq #6,d1
movel d1,a5@(-4)
L225:
jra L218
L226:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L227
movel _linuxboot_args,a0
pea LC105
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L227:
pea LC106
jbsr _probe_resident
addqw #4,sp
tstl d0
jne L229
pea LC107
jbsr _probe_resident
addqw #4,sp
tstl d0
jne L229
pea LC108
jbsr _probe_resident
addqw #4,sp
tstl d0
jne L229
pea LC109
jbsr _probe_resident
addqw #4,sp
tstl d0
jne L229
jra L228
L229:
moveq #8,d1
movel d1,a5@(-4)
jra L230
L228:
pea LC110
jbsr _probe_resource
addqw #4,sp
tstl d0
jeq L231
moveq #3,d1
movel d1,a5@(-4)
jra L232
L231:
moveq #6,d1
movel d1,a5@(-4)
L232:
L230:
jra L218
L233:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L234
movel _linuxboot_args,a0
pea LC111
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L234:
pea LC112
jbsr _probe_resident
addqw #4,sp
tstl d0
jne L236
pea LC113
jbsr _probe_resident
addqw #4,sp
tstl d0
jne L236
jra L235
L236:
pea LC114
jbsr _probe_resident
addqw #4,sp
tstl d0
jeq L237
moveq #12,d0
jra L238
L237:
moveq #11,d0
L238:
movel d0,a5@(-4)
jra L239
L235:
pea LC110
jbsr _probe_resource
addqw #4,sp
tstl d0
jeq L240
moveq #5,d1
movel d1,a5@(-4)
jra L241
L240:
pea LC104
jbsr _probe_resident
addqw #4,sp
tstl d0
jeq L242
moveq #14,d1
movel d1,a5@(-4)
jra L243
L242:
moveq #10,d1
movel d1,a5@(-4)
L243:
L241:
L239:
jra L218
L245:
L218:
L216:
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L246
movel _linuxboot_args,a0
pea LC115
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
movel a0@(1456),a2
jbsr a2@
movel _linuxboot_args,a0
pea LC44
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L246:
movel a5@(-4),d0
jra L213
L213:
movel a5@(-8),a2
unlk a5
rts
LC116:
.ascii " Module `%s': \0"
LC117:
.ascii "0x%08lx\12\0"
LC118:
.ascii "not present\12\0"
.even
_probe_resident:
link a5,#-4
movel a2,sp@-
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L248
movel _linuxboot_args,a0
movel a5@(8),sp@-
pea LC116
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
L248:
movel a5@(8),sp@-
jbsr _FindResident
addqw #4,sp
movel d0,a5@(-4)
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L249
tstl a5@(-4)
jeq L250
movel _linuxboot_args,a0
movel a5@(-4),sp@-
pea LC117
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L251
L250:
movel _linuxboot_args,a0
pea LC118
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L251:
L249:
tstl a5@(-4)
sne d1
moveb d1,d0
extbl d0
movel d0,d1
negl d1
movel d1,d0
jra L247
L247:
movel a5@(-8),a2
unlk a5
rts
LC119:
.ascii " Resource `%s': \0"
.even
_probe_resource:
link a5,#-4
movel a2,sp@-
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L253
movel _linuxboot_args,a0
movel a5@(8),sp@-
pea LC119
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
L253:
movel a5@(8),sp@-
jbsr _OpenResource
addqw #4,sp
movel d0,a5@(-4)
movel _linuxboot_args,a0
tstl a0@(1436)
jeq L254
tstl a5@(-4)
jeq L255
movel _linuxboot_args,a0
movel a5@(-4),sp@-
pea LC117
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
jra L256
L255:
movel _linuxboot_args,a0
pea LC118
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L256:
L254:
tstl a5@(-4)
sne d1
moveb d1,d0
extbl d0
movel d0,d1
negl d1
movel d1,d0
jra L252
L252:
movel a5@(-8),a2
unlk a5
rts
.even
_create_bootinfo:
link a5,#-8
movel d2,sp@-
clrl _bi_size
pea _bi
pea 4:w
pea 1:w
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L258
clrl d0
jra L257
L258:
pea _bi+4
pea 4:w
pea 2:w
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L259
clrl d0
jra L257
L259:
pea _bi+8
pea 4:w
pea 3:w
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L260
clrl d0
jra L257
L260:
pea _bi+12
pea 4:w
pea 4:w
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L261
clrl d0
jra L257
L261:
nop
clrl a5@(-4)
L262:
movel a5@(-4),a1
cmpl _bi+16,a1
jlt L265
jra L263
L265:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #3,d0
movel d0,d1
addl #_bi+20,d1
movel d1,sp@-
pea 8:w
pea 5:w
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L266
clrl d0
jra L257
L266:
L264:
addql #1,a5@(-4)
jra L262
L263:
tstl _bi+56
jeq L267
pea _bi+52
pea 8:w
pea 6:w
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L268
clrl d0
jra L257
L268:
L267:
pea _bi+60
pea 7:w
jbsr _add_bi_string
addqw #8,sp
tstl d0
jne L269
clrl d0
jra L257
L269:
pea _bi+316
pea 4:w
movel #32768,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L270
clrl d0
jra L257
L270:
nop
clrl a5@(-4)
L271:
movel a5@(-4),a1
cmpl _bi+320,a1
jlt L274
jra L272
L274:
movel a5@(-4),d0
movel d0,d2
movel d2,d1
asll #4,d1
addl d0,d1
movel d1,d0
asll #2,d0
movel d0,d1
addl #_bi+324,d1
movel d1,sp@-
pea 68:w
movel #32769,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L275
clrl d0
jra L257
L275:
L273:
addql #1,a5@(-4)
jra L271
L272:
pea _bi+1412
pea 4:w
movel #32770,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L276
clrl d0
jra L257
L276:
pea _bi+1416
pea 1:w
movel #32771,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L277
clrl d0
jra L257
L277:
pea _bi+1417
pea 1:w
movel #32772,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L278
clrl d0
jra L257
L278:
pea _bi+1418
pea 4:w
movel #32773,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L279
clrl d0
jra L257
L279:
pea _bi+1422
pea 4:w
movel #32774,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L280
clrl d0
jra L257
L280:
pea _bi+1426
pea 2:w
movel #32775,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
tstl d0
jne L281
clrl d0
jra L257
L281:
lea _bi_union,a1
addl _bi_size,a1
movel a1,a5@(-8)
movel a5@(-8),a0
clrw a0@
addql #2,_bi_size
moveq #1,d0
jra L257
L257:
movel a5@(-12),d2
unlk a5
rts
LC120:
.ascii "Can't add bootinfo record. Ask a wizard to enlarge me.\12\0"
.even
_add_bi_record:
link a5,#-12
moveml #0x3020,sp@-
movel a5@(8),d2
movel a5@(12),d3
movew d2,a5@(-2)
movew d3,a5@(-4)
clrl d0
movew a5@(-4),d0
addql #7,d0
moveq #-4,d1
andl d0,d1
movel d1,a5@(-12)
movel _bi_size,a0
addl a5@(-12),a0
lea a0@(2),a1
cmpl #4096,a1
jls L283
movel _linuxboot_args,a0
pea LC120
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
clrl d0
jra L282
L283:
movel #_bi_union,d1
addl _bi_size,d1
movel d1,a5@(-8)
movel a5@(-8),a0
movew a5@(-2),a0@
movel a5@(-8),a0
movew a5@(-10),a0@(2)
clrl d0
movew a5@(-4),d0
movel d0,sp@-
movel a5@(16),sp@-
movel a5@(-8),d0
addql #4,d0
movel d0,sp@-
jbsr _memcpy
addqw #8,sp
addqw #4,sp
movel a5@(-12),d1
addl d1,_bi_size
moveq #1,d0
jra L282
L282:
moveml a5@(-24),#0x40c
unlk a5
rts
.even
_add_bi_string:
link a5,#-4
movel d2,sp@-
movel a5@(8),d2
movew d2,a5@(-2)
movel a5@(12),sp@-
movel a5@(12),sp@-
jbsr _strlen
addqw #4,sp
movew d0,d1
addqw #1,d1
clrl d0
movew d1,d0
movel d0,sp@-
clrl d0
movew a5@(-2),d0
movel d0,sp@-
jbsr _add_bi_record
addqw #8,sp
addqw #4,sp
movel d0,d1
movel d1,d0
jra L284
L284:
movel a5@(-8),d2
unlk a5
rts
LC121:
.ascii "CPU type 0x%08lx not supported by kernel\12\0"
LC122:
.ascii "FPU type 0x%08lx not supported by kernel\12\0"
LC123:
.ascii "Warning: using only %ld blocks of memory\12\0"
LC124:
.ascii "Warning: using only %ld AutoConfig devices\12\0"
.even
_create_compat_bootinfo:
link a5,#-4
moveml #0x3c20,sp@-
movel _bi,_compat_bootinfo
moveq #1,d0
andl _bi+4,d0
tstl d0
jeq L286
moveq #1,d5
movel d5,_compat_bootinfo+4
jra L287
L286:
moveq #2,d0
andl _bi+4,d0
tstl d0
jeq L288
moveq #2,d5
movel d5,_compat_bootinfo+4
jra L289
L288:
moveq #4,d0
andl _bi+4,d0
tstl d0
jeq L290
moveq #4,d5
movel d5,_compat_bootinfo+4
jra L291
L290:
moveq #8,d0
andl _bi+4,d0
tstl d0
jeq L292
moveq #8,d5
movel d5,_compat_bootinfo+4
jra L293
L292:
movel _linuxboot_args,a0
movel _bi+4,sp@-
pea LC121
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
clrl d0
jra L285
L293:
L291:
L289:
L287:
moveq #1,d0
andl _bi+8,d0
tstl d0
jeq L294
moveq #32,d5
orl d5,_compat_bootinfo+4
jra L295
L294:
moveq #2,d0
andl _bi+8,d0
tstl d0
jeq L296
moveq #64,d5
orl d5,_compat_bootinfo+4
jra L297
L296:
moveq #4,d0
andl _bi+8,d0
tstl d0
jeq L298
orw #128,_compat_bootinfo+6
jra L299
L298:
moveq #8,d0
andl _bi+8,d0
tstl d0
jeq L300
orw #256,_compat_bootinfo+6
jra L301
L300:
tstl _bi+8
jeq L302
movel _linuxboot_args,a0
movel _bi+8,sp@-
pea LC122
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
clrl d0
jra L285
L302:
L301:
L299:
L297:
L295:
movel _bi+16,_compat_bootinfo+40
moveq #4,d5
cmpl _compat_bootinfo+40,d5
jge L303
movel _linuxboot_args,a0
pea 4:w
pea LC123
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
moveq #4,d5
movel d5,_compat_bootinfo+40
L303:
nop
clrl a5@(-4)
L304:
movel a5@(-4),d5
cmpl _compat_bootinfo+40,d5
jcs L307
jra L305
L307:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _compat_bootinfo,a0
movel a5@(-4),d1
movel d1,d2
movel d2,d1
asll #3,d1
lea _bi,a1
movel a1@(20,d1:l),a0@(8,d0:l)
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #3,d0
lea _compat_bootinfo,a0
movel a5@(-4),d1
movel d1,d2
movel d2,d1
asll #3,d1
lea _bi,a1
movel a1@(24,d1:l),a0@(12,d0:l)
L306:
addql #1,a5@(-4)
jra L304
L305:
tstl _bi+56
jeq L308
movel _bi+56,d0
addl #1023,d0
movel d0,d1
moveq #10,d5
lsrl d5,d1
movel d1,_compat_bootinfo+44
movel _bi+52,_compat_bootinfo+48
jra L309
L308:
clrl _compat_bootinfo+44
clrl _compat_bootinfo+48
L309:
pea 256:w
pea _bi+60
pea _compat_bootinfo+52
jbsr _strncpy
addqw #8,sp
addqw #4,sp
clrb _compat_bootinfo+307
movel _bi+316,_compat_bootinfo+308
movel _bi+320,_compat_bootinfo+312
moveq #16,d5
cmpl _compat_bootinfo+312,d5
jge L310
movel _linuxboot_args,a0
pea 16:w
pea LC124
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
moveq #16,d5
movel d5,_compat_bootinfo+312
L310:
nop
clrl a5@(-4)
L311:
movel a5@(-4),d5
cmpl _compat_bootinfo+312,d5
jcs L314
jra L312
L314:
movel a5@(-4),d0
movel d0,d2
movel d2,d1
asll #4,d1
addl d0,d1
movel d1,d0
asll #2,d0
movel #_compat_bootinfo+316,d1
movel a5@(-4),d2
movel d2,d4
movel d4,d3
asll #4,d3
addl d2,d3
movel d3,d2
asll #2,d2
movel #_bi+324,d3
movel d2,a0
addl d3,a0
movel d0,a1
addl d1,a1
pea 68:w
movel a1,sp@-
movel a0,sp@-
jbsr _bcopy
addqw #8,sp
addqw #4,sp
L313:
addql #1,a5@(-4)
jra L311
L312:
movel _bi+1412,_compat_bootinfo+1404
moveb _bi+1416,_compat_bootinfo+1408
moveb _bi+1417,_compat_bootinfo+1409
movel _bi+1418,_compat_bootinfo+1410
movel _bi+1422,_compat_bootinfo+1414
clrl _compat_bootinfo+1418
moveq #1,d0
jra L285
L285:
moveml a5@(-24),#0x43c
unlk a5
rts
LC125:
.ascii "Kernel has no bootinfo version info, assuming 0.0\12\0"
LC126:
.ascii "Bootstrap's bootinfo version: %ld.%ld\12\0"
LC127:
.ascii "Kernel's bootinfo version : %ld.%ld\12\0"
LC128:
.ascii "Warning: Bootinfo version of bootstrap and kernel differ!\12\0"
LC129:
.ascii " Certain features may not work.\12\0"
LC130:
.ascii "(using backwards compatibility mode)\12\0"
LC131:
.ascii "old\0"
LC132:
.ascii "new\0"
LC133:
.ascii "\12This bootstrap is too %s for this kernel!\12\0"
.even
_check_bootinfo_version:
link a5,#-28
movel a2,sp@-
movel d2,sp@-
movel a5@(8),a5@(-4)
clrl a5@(-8)
movel a5@(-4),a0
cmpl #1112102426,a0@(2)
jne L316
clrl a5@(-12)
L317:
movel a5@(-4),a0
movel a5@(-12),d0
movel d0,d1
movel d1,d0
asll #3,d0
tstl a0@(6,d0:l)
jne L320
jra L318
L320:
movel a5@(-4),a0
movel a5@(-12),d0
movel d0,d1
movel d1,d0
asll #3,d0
moveq #1,d2
cmpl a0@(6,d0:l),d2
jne L321
movel a5@(-4),a0
movel a5@(-12),d0
movel d0,d1
movel d1,d0
asll #3,d0
movel a0@(10,d0:l),a5@(-8)
jra L318
L321:
L319:
addql #1,a5@(-12)
jra L317
L318:
L316:
tstl a5@(-8)
jne L322
movel _linuxboot_args,a0
pea LC125
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L322:
movel a5@(-8),d1
movel d1,d0
clrw d0
swap d0
movel d0,d2
andl #65535,d2
movel d2,a5@(-16)
movel a5@(-8),d2
andl #65535,d2
movel d2,a5@(-20)
moveq #2,d2
movel d2,a5@(-24)
clrl a5@(-28)
movel _linuxboot_args,a0
movel a5@(-28),sp@-
movel a5@(-24),sp@-
pea LC126
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel _linuxboot_args,a0
movel a5@(-20),sp@-
movel a5@(-16),sp@-
pea LC127
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel a5@(-16),d0
moveq #1,d2
cmpl d0,d2
jeq L326
moveq #2,d2
cmpl d0,d2
jeq L324
jra L327
L324:
movel a5@(-20),d2
cmpl a5@(-28),d2
jle L325
movel _linuxboot_args,a0
pea LC128
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
movel _linuxboot_args,a0
pea LC129
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L325:
jra L323
L326:
movel _linuxboot_args,a0
pea LC130
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L323
L327:
movel _linuxboot_args,a0
movel a5@(-24),d2
cmpl a5@(-16),d2
jge L328
movel #LC131,d0
jra L329
L328:
movel #LC132,d0
L329:
movel d0,sp@-
pea LC133
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
clrl d0
jra L315
L323:
movel a5@(-16),d0
jra L315
L315:
movel a5@(-36),d2
movel a5@(-32),a2
unlk a5
rts
.even
_start_kernel:
link a5,#0
moveml #0x3038,sp@-
movel a5@(8),a0
movel a5@(12),a2
movel a5@(16),a3
movel a5@(20),a4
movel a5@(24),d0
movel a5@(28),d1
movel a5@(32),d2
movel _bi_size,d3
#APP
movel a2,sp;jmp a0@
#NO_APP
L332:
L334:
jra L334
L333:
L331:
moveml a5@(-20),#0x1c0c
unlk a5
rts
#APP
.text
.align 4
copyall:
| /* copy kernel text and data */
movel a3,a0 | src = (u_long *)memptr;
movel a0,a2 | limit = (u_long *)(memptr+kernel_size);
addl d2,a2
movel a4,a1 | dest = (u_long *)start_mem;
1: cmpl a0,a2
jeq 2f | while (src < limit)
moveb a0@+,a1@+ | *dest++ = *src++;
jra 1b
2:
| /* copy bootinfo to end of bss */
movel a3,a0 | src = (u_long *)(memptr+kernel_size);
addl d2,a0 | dest = end of bss (already in a1)
movel d3,d7 | count = bi_size
subql #1,d7
1: moveb a0@+,a1@+ | while (--count > -1)
dbra d7,1b | *dest++ = *src++
| /* copy the ramdisk to the top of memory */
| /* (from back to front) */
movel a4,a1 | dest = (u_long *)(start_mem+mem_size);
addl d0,a1
movel a3,a2 | limit = (u_long *)(memptr+kernel_size +
addl d2,a2 | bi_size);
addl d3,a2
movel a2,a0 | src = (u_long *)((u_long)limit+rd_size);
addl d1,a0
1: cmpl a0,a2
beqs 2f | while (src > limit)
moveb a0@-,a1@- | *--dest = *--src;
bras 1b
2:
| /* jump to start of kernel */
movel a4,a0 | jump_to (start_mem);
jmp a0@
copyallend:
.text
.align 4
maprommed:
oriw #0x0700,sr
moveml #0x3f20,sp@-
| /* Save cache settings */
.long 0x4e7a1002 | movec cacr,d1 */
| /* Save MMU settings */
.long 0x4e7a2003 | movec tc,d2
.long 0x4e7a3004 | movec itt0,d3
.long 0x4e7a4005 | movec itt1,d4
.long 0x4e7a5006 | movec dtt0,d5
.long 0x4e7a6007 | movec dtt1,d6
moveq #0,d0
movel d0,a2
| /* Disable caches */
.long 0x4e7b0002 | movec d0,cacr
| /* Disable MMU */
.long 0x4e7b0003 | movec d0,tc
.long 0x4e7b0004 | movec d0,itt0
.long 0x4e7b0005 | movec d0,itt1
.long 0x4e7b0006 | movec d0,dtt0
.long 0x4e7b0007 | movec d0,dtt1
lea 0x07f80000,a0
lea 0x00f80000,a1
movel a0@,d7
cmpl a1@,d7
jne 1f
movel d7,d0
notl d0
movel d0,a0@
nop | /* Thanks to Jörg Mayer! */
cmpl a1@,d0
jne 1f
moveq #-1,d0 | /* MapROMmed A3640 present */
movel d0,a2
1: movel d7,a0@
| /* Restore MMU settings */
.long 0x4e7b2003 | movec d2,tc
.long 0x4e7b3004 | movec d3,itt0
.long 0x4e7b4005 | movec d4,itt1
.long 0x4e7b5006 | movec d5,dtt0
.long 0x4e7b6007 | movec d6,dtt1
| /* Restore cache settings */
.long 0x4e7b1002 | movec d1,cacr
movel a2,d0
moveml sp@+,#0x04fc
rte
#NO_APP
.even
_reset_rb3:
link a5,#-4
movel a2,sp@-
movel a5@(8),a0
movel a0@(32),d0
addl #16785408,d0
movel d0,a5@(-4)
movel a5@(-4),a0
moveb #1,a0@
movel _linuxboot_args,a0
movel #1000000,sp@-
movel a0@(1488),a2
jbsr a2@
addqw #4,sp
movel a5@(-4),a0
clrb a0@
L335:
movel a5@(-8),a2
unlk a5
rts
.even
_reset_piccolo:
link a5,#-4
movel a2,sp@-
movel a5@(8),a0
movel a0@(32),d0
addl #32768,d0
movel d0,a5@(-4)
movel a5@(-4),a0
moveb #1,a0@
movel _linuxboot_args,a0
movel #1000000,sp@-
movel a0@(1488),a2
jbsr a2@
addqw #4,sp
movel a5@(-4),a0
moveb #81,a0@
L336:
movel a5@(-8),a2
unlk a5
rts
.even
_reset_sd64:
link a5,#-4
movel a2,sp@-
movel a5@(8),a0
movel a0@(32),d0
addl #32768,d0
movel d0,a5@(-4)
movel a5@(-4),a0
moveb #31,a0@
movel _linuxboot_args,a0
movel #1000000,sp@-
movel a0@(1488),a2
jbsr a2@
addqw #4,sp
movel a5@(-4),a0
moveb #79,a0@
L337:
movel a5@(-8),a2
unlk a5
rts
.even
_reset_ariadne:
link a5,#-36
movel d2,sp@-
movel a5@(8),a0
movel a0@(32),d2
addl #880,d2
movel d2,a5@(-4)
movel a5@(8),a0
movel a0@(32),d2
addl #882,d2
movel d2,a5@(-8)
movel a5@(8),a0
movel a0@(32),d2
addl #884,d2
movel d2,a5@(-12)
movel a5@(8),a0
movel a0@(32),d2
addl #4100,d2
movel d2,a5@(-16)
movel a5@(8),a0
movel a0@(32),d2
addl #4102,d2
movel d2,a5@(-20)
movel a5@(8),a0
movel a0@(32),d2
addl #4107,d2
movel d2,a5@(-24)
movel a5@(8),a0
movel a0@(32),d2
addl #4110,d2
movel d2,a5@(-28)
movel a5@(8),a0
movel a0@(32),d2
addl #4122,d2
movel d2,a5@(-32)
jbsr _Disable
movel a5@(-12),a0
movew a0@,a5@(-34)
movel a5@(-8),a0
clrw a0@
movel a5@(-4),a0
movew #1024,a0@
movel a5@(-24),a0
movel a5@(-24),a1
moveb a1@,d0
moveb d0,d1
andb #253,d1
moveb d1,a0@
movel a5@(-28),a0
movel a5@(-28),a1
moveb a1@,d0
moveb d0,d1
andb #253,d1
moveb d1,a0@
movel a5@(-32),a0
moveb #5,a0@
movel a5@(-16),a0
clrb a0@
movel a5@(-20),a0
clrb a0@
jbsr _Enable
L338:
movel a5@(-40),d2
unlk a5
rts
.even
_reset_hydra:
link a5,#-12
movel a5@(8),a0
movel a0@(32),a1
addl #65505,a1
movel a1,a5@(-4)
movel a5@(8),a0
movel a0@(32),a1
addl #65519,a1
movel a1,a5@(-8)
movel #5000,a5@(-12)
jbsr _Disable
movel a5@(-4),a0
moveb #33,a0@
L340:
movel a5@(-8),a0
moveb a0@,d1
moveb d1,d0
andb #128,d0
tstb d0
jne L343
subql #1,a5@(-12)
tstl a5@(-12)
jne L342
jra L343
L343:
jra L341
L342:
jra L340
L341:
jbsr _Enable
L339:
unlk a5
rts
.data
.even
_ZFileSize:
.long 0
.even
_ZFpos:
.long 0
.even
_Zwpos:
.long 0
.even
_Zinfd:
.long 0
.even
_insize:
.long 0
.even
_inptr:
.long 0
.even
_outcnt:
.long 0
.even
_exit_code:
.long 0
.even
_bytes_out:
.long 0
.even
_border:
.long 16
.long 17
.long 18
.long 0
.long 8
.long 7
.long 9
.long 6
.long 10
.long 5
.long 11
.long 4
.long 12
.long 3
.long 13
.long 2
.long 14
.long 1
.long 15
.even
_cplens:
.word 3
.word 4
.word 5
.word 6
.word 7
.word 8
.word 9
.word 10
.word 11
.word 13
.word 15
.word 17
.word 19
.word 23
.word 27
.word 31
.word 35
.word 43
.word 51
.word 59
.word 67
.word 83
.word 99
.word 115
.word 131
.word 163
.word 195
.word 227
.word 258
.word 0
.word 0
.even
_cplext:
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 1
.word 1
.word 1
.word 1
.word 2
.word 2
.word 2
.word 2
.word 3
.word 3
.word 3
.word 3
.word 4
.word 4
.word 4
.word 4
.word 5
.word 5
.word 5
.word 5
.word 0
.word 99
.word 99
.even
_cpdist:
.word 1
.word 2
.word 3
.word 4
.word 5
.word 7
.word 9
.word 13
.word 17
.word 25
.word 33
.word 49
.word 65
.word 97
.word 129
.word 193
.word 257
.word 385
.word 513
.word 769
.word 1025
.word 1537
.word 2049
.word 3073
.word 4097
.word 6145
.word 8193
.word 12289
.word 16385
.word 24577
.even
_cpdext:
.word 0
.word 0
.word 0
.word 0
.word 1
.word 1
.word 2
.word 2
.word 3
.word 3
.word 4
.word 4
.word 5
.word 5
.word 6
.word 6
.word 7
.word 7
.word 8
.word 8
.word 9
.word 9
.word 10
.word 10
.word 11
.word 11
.word 12
.word 12
.word 13
.word 13
.even
_mask_bits:
.word 0
.word 1
.word 3
.word 7
.word 15
.word 31
.word 63
.word 127
.word 255
.word 511
.word 1023
.word 2047
.word 4095
.word 8191
.word 16383
.word 32767
.word 65535
.even
_lbits:
.long 9
.even
_dbits:
.long 6
.text
.even
_huft_build:
link a5,#-1392
moveml #0x3e3a,sp@-
pea 68:w
clrl sp@-
lea a5@(-72),a0
movel a0,sp@-
jbsr _memset
addqw #8,sp
addqw #4,sp
movel a5@(8),a3
movel a5@(12),d2
L345:
movel a3@,d0
addql #1,a5@(-72,d0:l:4)
addqw #4,a3
L347:
subql #1,d2
tstl d2
jne L348
jra L346
L348:
jra L345
L346:
movel a5@(-72),d6
cmpl a5@(12),d6
jne L349
movel a5@(28),a0
clrl a0@
movel a5@(32),a0
clrl a0@
clrl d0
jra L344
L349:
movel a5@(32),a0
movel a0@,a5@(-88)
moveq #1,d3
L350:
moveq #16,d6
cmpl d3,d6
jcc L353
jra L351
L353:
tstl a5@(-72,d3:l:4)
jeq L354
jra L351
L354:
L352:
addql #1,d3
jra L350
L351:
movel d3,a2
cmpl a5@(-88),d3
jls L355
movel d3,a5@(-88)
L355:
nop
moveq #16,d2
L356:
tstl d2
jne L359
jra L357
L359:
tstl a5@(-72,d2:l:4)
jeq L360
jra L357
L360:
L358:
subql #1,d2
jra L356
L357:
movel d2,a5@(-80)
cmpl a5@(-88),d2
jcc L361
movel d2,a5@(-88)
L361:
movel a5@(32),a0
movel a5@(-88),a0@
moveq #1,d0
movel d0,d1
asll d3,d1
movel d1,a5@(-1386)
L362:
cmpl d3,d2
jhi L365
jra L363
L365:
movel a5@(-1386),d0
subl a5@(-72,d3:l:4),d0
movel d0,d1
movel d1,a5@(-1386)
tstl d1
jge L366
moveq #2,d0
jra L344
L366:
L364:
addql #1,d3
movel a5@(-1386),d0
movel d0,d1
addl d1,d1
movel d1,a5@(-1386)
jra L362
L363:
movel a5@(-1386),d0
subl a5@(-72,d2:l:4),d0
movel d0,d1
movel d1,a5@(-1386)
tstl d1
jge L367
moveq #2,d0
jra L344
L367:
movel a5@(-1386),d6
addl d6,a5@(-72,d2:l:4)
clrl d3
clrl a5@(-1374)
lea a5@(-72),a3
addqw #4,a3
lea a5@(-1378),a0
lea a0@(8),a6
movel a6,a5@(-1382)
L368:
subql #1,d2
tstl d2
jne L370
jra L369
L370:
movel a5@(-1382),a0
addl a3@,d3
movel d3,d0
movel d0,a0@
addqw #4,a3
addql #4,a5@(-1382)
jra L368
L369:
movel a5@(8),a3
clrl d2
L371:
movel a3@,d3
movel d3,d0
addqw #4,a3
tstl d0
jeq L374
movel d3,d0
movel d0,d1
asll #2,d1
lea a5@(0,d1:l),a0
movel a0@(-1378),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a1
movel d2,a1@(-1310)
addql #1,a0@(-1378)
L374:
L373:
addql #1,d2
cmpl a5@(12),d2
jcs L375
jra L372
L375:
jra L371
L372:
clrl d2
clrl a5@(-1378)
lea a5@(-1310),a3
moveq #-1,d6
movel d6,a5@(-84)
movel a5@(-88),d4
negl d4
clrl a5@(-158)
subl a4,a4
clrl a5@(-1390)
L376:
cmpl a5@(-80),a2
jle L379
jra L377
L379:
movel a5@(-72,a2:l:4),a5@(-4)
L380:
subql #1,a5@(-4)
moveq #-1,d6
cmpl a5@(-4),d6
jne L382
jra L381
L382:
L383:
movel d4,d0
addl a5@(-88),d0
cmpl a2,d0
jlt L385
jra L384
L385:
addql #1,a5@(-84)
addl a5@(-88),d4
movel a5@(-80),d0
subl d4,d0
movel d0,d1
movel d1,a5@(-1390)
cmpl a5@(-88),d1
jls L386
movel a5@(-88),d0
jra L387
L386:
movel a5@(-1390),d0
L387:
movel d0,a5@(-1390)
movel a2,d3
subl d4,d3
movel d3,d0
moveq #1,d5
movel d5,d1
asll d0,d1
movel d1,d0
movel d0,a5@(-76)
movel a5@(-4),d1
addql #1,d1
cmpl d0,d1
jcc L388
movel a5@(-76),d0
subql #1,d0
movel d0,a6
subl a5@(-4),a6
movel a6,a5@(-76)
lea a5@(-72),a0
movel a2,d0
movel d0,d1
asll #2,d1
lea a0@(0,d1:l),a6
movel a6,a5@(-1382)
L389:
addql #1,d3
cmpl a5@(-1390),d3
jcs L391
jra L390
L391:
movel a5@(-76),d0
movel d0,d1
addl d1,d1
movel d1,d0
movel d0,a5@(-76)
addql #4,a5@(-1382)
movel a5@(-1382),a0
cmpl a0@,d0
jhi L392
jra L390
L392:
movel a5@(-1382),a0
movel a0@,d6
subl d6,a5@(-76)
jra L389
L390:
L388:
moveq #1,d0
movel d0,d1
asll d3,d1
movel d1,a5@(-1390)
pea 5:w
movel a5@(-1390),d0
addql #1,d0
movel d0,d5
movel d5,d1
addl d1,d1
addl d0,d1
movel d1,d0
addl d0,d0
movel d0,sp@-
jbsr _AllocVec
addqw #8,sp
movel d0,a4
movel a4,d0
tstl d0
jne L393
tstl a5@(-84)
jeq L394
movel a5@(-158),sp@-
jbsr _huft_free
addqw #4,sp
L394:
moveq #3,d0
jra L344
L393:
movel _hufts,d0
addql #1,d0
movel d0,a6
addl a5@(-1390),a6
movel a6,_hufts
movel a5@(28),a0
lea a4@(6),a6
movel a6,a0@
lea a4@(2),a0
movel a0,a1
movel a1,a5@(28)
clrl a1@
movel a5@(-84),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
addqw #6,a4
movel a4,a0@(-158)
tstl a5@(-84)
jeq L395
movel a5@(-84),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
movel d2,a0@(-1378)
moveb a5@(-85),a5@(-93)
moveb d3,d6
addb #16,d6
moveb d6,a5@(-94)
movel a4,a5@(-92)
movel d4,d0
subl a5@(-88),d0
movel d2,d3
lsrl d0,d3
lea a5@(-162),a0
movel a5@(-84),d0
movel d0,d1
movel d1,d0
asll #2,d0
addl d0,a0
movel d3,d0
movel d0,d1
addl d1,d1
addl d3,d1
movel d1,d0
addl d0,d0
movel a0@,a0
movel a5@(-94),a0@(d0:l)
movew a5@(-90),a0@(4,d0:l)
L395:
jra L383
L384:
movew a2,d6
subb d4,d6
moveb d6,a5@(-93)
lea a5@(-1310),a0
movel a5@(12),d0
movel d0,d1
movel d1,d0
asll #2,d0
addl d0,a0
cmpl a3,a0
jhi L396
moveb #99,a5@(-94)
jra L397
L396:
movel a3@,a6
cmpl a5@(16),a6
jcc L398
cmpl #255,a3@
jhi L399
moveb #16,d0
jra L400
L399:
moveb #15,d0
L400:
moveb d0,a5@(-94)
movew a3@(2),a5@(-92)
addqw #4,a3
jra L401
L398:
movel a3@,d0
subl a5@(16),d0
movel d0,d1
movel d1,d0
addl d0,d0
movel a5@(24),a0
moveb a0@(1,d0:l),a5@(-94)
movel a3@,d0
subl a5@(16),d0
movel d0,d1
movel d1,d0
addl d0,d0
movel a5@(20),a0
movew a0@(d0:l),a5@(-92)
addqw #4,a3
L401:
L397:
movel a2,d0
subl d4,d0
moveq #1,d1
movel d1,d6
asll d0,d6
movel d6,d0
movel d0,a5@(-76)
movel d2,d3
lsrl d4,d3
L402:
cmpl a5@(-1390),d3
jcs L405
jra L403
L405:
movel d3,d1
movel d1,d0
addl d0,d0
addl d3,d0
movel d0,d1
addl d1,d1
movel a5@(-94),a4@(d1:l)
movew a5@(-90),a4@(4,d1:l)
L404:
addl a5@(-76),d3
jra L402
L403:
nop
movel a2,d0
subql #1,d0
moveq #1,d1
movel d1,d3
asll d0,d3
L406:
movel d2,d0
andl d3,d0
tstl d0
jne L409
jra L407
L409:
eorl d3,d2
L408:
lsrl #1,d3
jra L406
L407:
eorl d3,d2
L410:
moveq #1,d1
movel d1,d0
asll d4,d0
movel d0,d1
subql #1,d1
movel d2,d0
andl d1,d0
movel a5@(-84),d1
movel d1,d5
movel d5,d1
asll #2,d1
lea a5@(0,d1:l),a0
cmpl a0@(-1378),d0
jne L412
jra L411
L412:
subql #1,a5@(-84)
subl a5@(-88),d4
jra L410
L411:
jra L380
L381:
L378:
addqw #1,a2
jra L376
L377:
clrl d0
tstl a5@(-1386)
jeq L413
moveq #1,d6
cmpl a5@(-80),d6
jeq L413
moveq #1,d0
L413:
jra L344
L344:
moveml a5@(-1428),#0x5c7c
unlk a5
rts
.even
_huft_free:
link a5,#0
movel a2,sp@-
movel d2,sp@-
movel a5@(8),a2
L415:
tstl a2
jne L417
jra L416
L417:
subqw #6,a2
movel a2@(2),d2
movel a2,sp@-
jbsr _FreeVec
addqw #4,sp
movel d2,a2
jra L415
L416:
clrl d0
jra L414
L414:
movel a5@(-8),d2
movel a5@(-4),a2
unlk a5
rts
.even
_inflate_codes:
link a5,#-24
moveml #0x3e00,sp@-
movel _bb,d3
movel _bk,d4
movel _outcnt,a5@(-12)
movel a5@(16),d0
movel d0,d1
movel d1,d0
addl d0,d0
lea _mask_bits,a0
clrl d1
movew a0@(d0:l),d1
movel d1,a5@(-20)
movel a5@(20),d0
movel d0,d1
movel d1,d0
addl d0,d0
lea _mask_bits,a0
clrl d1
movew a0@(d0:l),d1
movel d1,a5@(-24)
L419:
L422:
cmpl a5@(16),d4
jcs L424
jra L423
L424:
movel _inptr,d6
cmpl _insize,d6
jcc L425
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d4,d0
orl d0,d3
addql #1,_inptr
jra L426
L425:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d4,d0
orl d0,d3
L426:
addql #8,d4
jra L422
L423:
movel d3,d0
andl a5@(-20),d0
movel d0,d5
movel d5,d1
addl d1,d1
addl d0,d1
movel d1,d0
addl d0,d0
movel d0,d1
addl a5@(8),d1
movel d1,a0
movel a0,a5@(-16)
clrl d2
moveb a0@,d2
movel d2,d0
moveq #16,d6
cmpl d0,d6
jcc L427
L428:
moveq #99,d6
cmpl d2,d6
jne L431
moveq #1,d0
jra L418
L431:
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
lsrl d0,d3
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
subl d0,d4
moveq #-16,d6
addl d6,d2
L432:
cmpl d4,d2
jhi L434
jra L433
L434:
movel _inptr,d6
cmpl _insize,d6
jcc L435
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d4,d0
orl d0,d3
addql #1,_inptr
jra L436
L435:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d4,d0
orl d0,d3
L436:
addql #8,d4
jra L432
L433:
L430:
movel a5@(-16),a0
movel d2,d1
movel d1,d0
addl d0,d0
lea _mask_bits,a1
clrl d1
movew a1@(d0:l),d1
movel d3,d0
andl d1,d0
movel d0,d5
movel d5,d1
addl d1,d1
addl d0,d1
movel d1,d0
addl d0,d0
movel d0,d1
addl a0@(2),d1
movel d1,a0
movel a0,a5@(-16)
clrl d2
moveb a0@,d2
movel d2,d0
moveq #16,d6
cmpl d0,d6
jcs L437
jra L429
L437:
jra L428
L429:
L427:
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
lsrl d0,d3
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
subl d0,d4
moveq #16,d6
cmpl d2,d6
jne L438
movel _window,a0
addl a5@(-12),a0
movel a5@(-16),a1
moveb a1@(3),a0@
addql #1,a5@(-12)
cmpl #32768,a5@(-12)
jne L439
movel a5@(-12),_outcnt
jbsr _flush_window
clrl a5@(-12)
L439:
jra L440
L438:
moveq #15,d6
cmpl d2,d6
jne L441
jra L420
L441:
L442:
cmpl d4,d2
jhi L444
jra L443
L444:
movel _inptr,d6
cmpl _insize,d6
jcc L445
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d4,d0
orl d0,d3
addql #1,_inptr
jra L446
L445:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d4,d0
orl d0,d3
L446:
addql #8,d4
jra L442
L443:
movel a5@(-16),a0
clrl d0
movew a0@(2),d0
movel d2,d5
movel d5,d1
addl d1,d1
lea _mask_bits,a0
clrl d5
movew a0@(d1:l),d5
movel d3,d1
andl d5,d1
movel d0,d6
addl d1,d6
movel d6,a5@(-4)
lsrl d2,d3
subl d2,d4
L447:
cmpl a5@(20),d4
jcs L449
jra L448
L449:
movel _inptr,d6
cmpl _insize,d6
jcc L450
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d4,d0
orl d0,d3
addql #1,_inptr
jra L451
L450:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d4,d0
orl d0,d3
L451:
addql #8,d4
jra L447
L448:
movel d3,d0
andl a5@(-24),d0
movel d0,d5
movel d5,d1
addl d1,d1
addl d0,d1
movel d1,d0
addl d0,d0
movel d0,d1
addl a5@(12),d1
movel d1,a0
movel a0,a5@(-16)
clrl d2
moveb a0@,d2
movel d2,d0
moveq #16,d6
cmpl d0,d6
jcc L452
L453:
moveq #99,d6
cmpl d2,d6
jne L456
moveq #1,d0
jra L418
L456:
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
lsrl d0,d3
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
subl d0,d4
moveq #-16,d6
addl d6,d2
L457:
cmpl d4,d2
jhi L459
jra L458
L459:
movel _inptr,d6
cmpl _insize,d6
jcc L460
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d4,d0
orl d0,d3
addql #1,_inptr
jra L461
L460:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d4,d0
orl d0,d3
L461:
addql #8,d4
jra L457
L458:
L455:
movel a5@(-16),a0
movel d2,d1
movel d1,d0
addl d0,d0
lea _mask_bits,a1
clrl d1
movew a1@(d0:l),d1
movel d3,d0
andl d1,d0
movel d0,d5
movel d5,d1
addl d1,d1
addl d0,d1
movel d1,d0
addl d0,d0
movel d0,d1
addl a0@(2),d1
movel d1,a0
movel a0,a5@(-16)
clrl d2
moveb a0@,d2
movel d2,d0
moveq #16,d6
cmpl d0,d6
jcs L462
jra L454
L462:
jra L453
L454:
L452:
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
lsrl d0,d3
movel a5@(-16),a0
clrl d0
moveb a0@(1),d0
subl d0,d4
L463:
cmpl d4,d2
jhi L465
jra L464
L465:
movel _inptr,d6
cmpl _insize,d6
jcc L466
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d4,d0
orl d0,d3
addql #1,_inptr
jra L467
L466:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d4,d0
orl d0,d3
L467:
addql #8,d4
jra L463
L464:
movel a5@(-16),a0
clrl d0
movew a0@(2),d0
movel a5@(-12),d6
subl d0,d6
movel d6,d0
movel d2,d5
movel d5,d1
addl d1,d1
lea _mask_bits,a0
clrl d5
movew a0@(d1:l),d5
movel d3,d1
andl d5,d1
movel d0,d6
subl d1,d6
movel d6,a5@(-8)
lsrl d2,d3
subl d2,d4
L468:
movel a5@(-8),d0
andl #32767,d0
movel d0,d1
movel d1,a5@(-8)
cmpl a5@(-12),d1
jls L473
movel #32768,d2
subl a5@(-8),d2
jra L474
L473:
movel #32768,d2
subl a5@(-12),d2
L474:
movel d2,d0
cmpl a5@(-4),d0
jls L471
movel a5@(-4),d0
jra L472
L471:
movel d2,d0
L472:
movel d0,d2
subl d0,a5@(-4)
movel a5@(-12),d0
subl a5@(-8),d0
cmpl d0,d2
jhi L475
movel d2,sp@-
movel _window,d0
addl a5@(-8),d0
movel d0,sp@-
movel _window,d0
addl a5@(-12),d0
movel d0,sp@-
jbsr _memcpy
addqw #8,sp
addqw #4,sp
addl d2,a5@(-12)
addl d2,a5@(-8)
jra L476
L475:
nop
L477:
movel _window,a0
addl a5@(-12),a0
movel _window,a1
addl a5@(-8),a1
moveb a1@,a0@
addql #1,a5@(-8)
addql #1,a5@(-12)
L479:
subql #1,d2
tstl d2
jne L480
jra L478
L480:
jra L477
L478:
L476:
cmpl #32768,a5@(-12)
jne L481
movel a5@(-12),_outcnt
jbsr _flush_window
clrl a5@(-12)
L481:
L470:
tstl a5@(-4)
jne L482
jra L469
L482:
jra L468
L469:
L440:
L421:
jra L419
L420:
movel a5@(-12),_outcnt
movel d3,_bb
movel d4,_bk
clrl d0
jra L418
L418:
moveml a5@(-44),#0x7c
unlk a5
rts
.even
_inflate_stored:
link a5,#-8
moveml #0x3800,sp@-
movel _bb,d2
movel _bk,d3
movel _outcnt,a5@(-8)
moveq #7,d4
andl d3,d4
movel d4,a5@(-4)
movel a5@(-4),d4
lsrl d4,d2
subl a5@(-4),d3
L484:
moveq #15,d4
cmpl d3,d4
jcc L486
jra L485
L486:
movel _inptr,d4
cmpl _insize,d4
jcc L487
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L488
L487:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L488:
addql #8,d3
jra L484
L485:
movel d2,d4
andl #65535,d4
movel d4,a5@(-4)
clrw d2
swap d2
moveq #-16,d4
addl d4,d3
L489:
moveq #15,d4
cmpl d3,d4
jcc L491
jra L490
L491:
movel _inptr,d4
cmpl _insize,d4
jcc L492
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L493
L492:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L493:
addql #8,d3
jra L489
L490:
movel d2,d0
notl d0
movel d0,d1
andl #65535,d1
cmpl a5@(-4),d1
jeq L494
moveq #1,d0
jra L483
L494:
clrw d2
swap d2
moveq #-16,d4
addl d4,d3
L495:
subql #1,a5@(-4)
moveq #-1,d4
cmpl a5@(-4),d4
jne L497
jra L496
L497:
L498:
moveq #7,d4
cmpl d3,d4
jcc L500
jra L499
L500:
movel _inptr,d4
cmpl _insize,d4
jcc L501
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L502
L501:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L502:
addql #8,d3
jra L498
L499:
movel _window,a0
addl a5@(-8),a0
moveb d2,a0@
addql #1,a5@(-8)
cmpl #32768,a5@(-8)
jne L503
movel a5@(-8),_outcnt
jbsr _flush_window
clrl a5@(-8)
L503:
lsrl #8,d2
subql #8,d3
jra L495
L496:
movel a5@(-8),_outcnt
movel d2,_bb
movel d3,_bk
clrl d0
jra L483
L483:
moveml a5@(-20),#0x1c
unlk a5
rts
.even
_inflate_fixed:
link a5,#-1172
movel d2,sp@-
nop
clrl a5@(-4)
L505:
cmpl #143,a5@(-4)
jle L508
jra L506
L508:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
moveq #8,d2
movel d2,a0@(-1172)
L507:
addql #1,a5@(-4)
jra L505
L506:
nop
L509:
cmpl #255,a5@(-4)
jle L512
jra L510
L512:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
moveq #9,d2
movel d2,a0@(-1172)
L511:
addql #1,a5@(-4)
jra L509
L510:
nop
L513:
cmpl #279,a5@(-4)
jle L516
jra L514
L516:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
moveq #7,d2
movel d2,a0@(-1172)
L515:
addql #1,a5@(-4)
jra L513
L514:
nop
L517:
cmpl #287,a5@(-4)
jle L520
jra L518
L520:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
moveq #8,d2
movel d2,a0@(-1172)
L519:
addql #1,a5@(-4)
jra L517
L518:
moveq #7,d2
movel d2,a5@(-16)
lea a5@(-16),a0
movel a0,sp@-
lea a5@(-8),a0
movel a0,sp@-
pea _cplext
pea _cplens
pea 257:w
pea 288:w
lea a5@(-1172),a0
movel a0,sp@-
jbsr _huft_build
addw #28,sp
movel d0,a5@(-4)
tstl a5@(-4)
jeq L521
movel a5@(-4),d0
jra L504
L521:
nop
clrl a5@(-4)
L522:
moveq #29,d2
cmpl a5@(-4),d2
jge L525
jra L523
L525:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
moveq #5,d2
movel d2,a0@(-1172)
L524:
addql #1,a5@(-4)
jra L522
L523:
moveq #5,d2
movel d2,a5@(-20)
lea a5@(-20),a0
movel a0,sp@-
lea a5@(-12),a0
movel a0,sp@-
pea _cpdext
pea _cpdist
clrl sp@-
pea 30:w
lea a5@(-1172),a0
movel a0,sp@-
jbsr _huft_build
addw #28,sp
movel d0,a5@(-4)
moveq #1,d2
cmpl a5@(-4),d2
jge L526
movel a5@(-8),sp@-
jbsr _huft_free
addqw #4,sp
movel a5@(-4),d0
jra L504
L526:
movel a5@(-20),sp@-
movel a5@(-16),sp@-
movel a5@(-12),sp@-
movel a5@(-8),sp@-
jbsr _inflate_codes
addqw #8,sp
addqw #8,sp
tstl d0
jeq L527
moveq #1,d0
jra L504
L527:
movel a5@(-8),sp@-
jbsr _huft_free
addqw #4,sp
movel a5@(-12),sp@-
jbsr _huft_free
addqw #4,sp
clrl d0
jra L504
L504:
movel a5@(-1176),d2
unlk a5
rts
LC134:
.ascii " incomplete literal tree\12\0"
LC135:
.ascii " incomplete distance tree\12\0"
.even
_inflate_dynamic:
link a5,#-1312
moveml #0x3c00,sp@-
movel _bb,d2
movel _bk,d3
L529:
moveq #4,d5
cmpl d3,d5
jcc L531
jra L530
L531:
movel _inptr,d5
cmpl _insize,d5
jcc L532
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L533
L532:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L533:
addql #8,d3
jra L529
L530:
moveq #31,d0
andl d2,d0
movel d0,d5
addl #257,d5
movel d5,a5@(-44)
lsrl #5,d2
subql #5,d3
L534:
moveq #4,d5
cmpl d3,d5
jcc L536
jra L535
L536:
movel _inptr,d5
cmpl _insize,d5
jcc L537
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L538
L537:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L538:
addql #8,d3
jra L534
L535:
moveq #31,d0
andl d2,d0
movel d0,d5
addql #1,d5
movel d5,a5@(-48)
lsrl #5,d2
subql #5,d3
L539:
moveq #3,d5
cmpl d3,d5
jcc L541
jra L540
L541:
movel _inptr,d5
cmpl _insize,d5
jcc L542
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L543
L542:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L543:
addql #8,d3
jra L539
L540:
moveq #15,d0
andl d2,d0
movel d0,d5
addql #4,d5
movel d5,a5@(-40)
lsrl #4,d2
subql #4,d3
cmpl #286,a5@(-44)
jhi L545
moveq #30,d5
cmpl a5@(-48),d5
jcs L545
jra L544
L545:
moveq #1,d0
jra L528
L544:
nop
clrl a5@(-8)
L546:
movel a5@(-8),d5
cmpl a5@(-40),d5
jcs L549
jra L547
L549:
L550:
moveq #2,d5
cmpl d3,d5
jcc L552
jra L551
L552:
movel _inptr,d5
cmpl _insize,d5
jcc L553
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L554
L553:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L554:
addql #8,d3
jra L550
L551:
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _border,a0
movel a0@(d0:l),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
moveq #7,d5
andl d2,d5
movel d5,a0@(-1312)
lsrl #3,d2
subql #3,d3
L548:
addql #1,a5@(-8)
jra L546
L547:
nop
L555:
moveq #18,d5
cmpl a5@(-8),d5
jcc L558
jra L556
L558:
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _border,a0
movel a0@(d0:l),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
clrl a0@(-1312)
L557:
addql #1,a5@(-8)
jra L555
L556:
moveq #7,d5
movel d5,a5@(-32)
lea a5@(-32),a0
movel a0,sp@-
lea a5@(-24),a0
movel a0,sp@-
clrl sp@-
clrl sp@-
pea 19:w
pea 19:w
lea a5@(-1312),a0
movel a0,sp@-
jbsr _huft_build
addw #28,sp
movel d0,a5@(-4)
tstl a5@(-4)
jeq L559
moveq #1,d5
cmpl a5@(-4),d5
jne L560
movel a5@(-24),sp@-
jbsr _huft_free
addqw #4,sp
L560:
movel a5@(-4),d0
jra L528
L559:
movel a5@(-44),d5
addl a5@(-48),d5
movel d5,a5@(-20)
movel a5@(-32),d0
movel d0,d1
movel d1,d0
addl d0,d0
lea _mask_bits,a0
clrl d1
movew a0@(d0:l),d1
movel d1,a5@(-16)
clrl a5@(-12)
clrl a5@(-4)
L561:
movel a5@(-4),d5
cmpl a5@(-20),d5
jcs L563
jra L562
L563:
L564:
cmpl a5@(-32),d3
jcs L566
jra L565
L566:
movel _inptr,d5
cmpl _insize,d5
jcc L567
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L568
L567:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L568:
addql #8,d3
jra L564
L565:
movel d2,d0
andl a5@(-16),d0
movel d0,d4
movel d4,d1
addl d1,d1
addl d0,d1
movel d1,d0
addl d0,d0
movel d0,d1
addl a5@(-24),d1
movel d1,a0
movel a0,a5@(-28)
clrl d0
moveb a0@(1),d0
movel d0,a5@(-8)
movel a5@(-8),d5
lsrl d5,d2
subl a5@(-8),d3
movel a5@(-28),a0
clrl d0
movew a0@(2),d0
movel d0,a5@(-8)
moveq #15,d5
cmpl a5@(-8),d5
jcs L569
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
movel a5@(-8),d0
movel d0,a5@(-12)
movel d0,a0@(-1312)
addql #1,a5@(-4)
jra L570
L569:
moveq #16,d5
cmpl a5@(-8),d5
jne L571
L572:
moveq #1,d5
cmpl d3,d5
jcc L574
jra L573
L574:
movel _inptr,d5
cmpl _insize,d5
jcc L575
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L576
L575:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L576:
addql #8,d3
jra L572
L573:
moveq #3,d0
andl d2,d0
movel d0,d5
addql #3,d5
movel d5,a5@(-8)
lsrl #2,d2
subql #2,d3
movel a5@(-4),d0
addl a5@(-8),d0
cmpl a5@(-20),d0
jls L577
moveq #1,d0
jra L528
L577:
nop
L578:
subql #1,a5@(-8)
moveq #-1,d5
cmpl a5@(-8),d5
jne L580
jra L579
L580:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
movel a5@(-12),a0@(-1312)
addql #1,a5@(-4)
jra L578
L579:
jra L581
L571:
moveq #17,d5
cmpl a5@(-8),d5
jne L582
L583:
moveq #2,d5
cmpl d3,d5
jcc L585
jra L584
L585:
movel _inptr,d5
cmpl _insize,d5
jcc L586
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L587
L586:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L587:
addql #8,d3
jra L583
L584:
moveq #7,d0
andl d2,d0
movel d0,d5
addql #3,d5
movel d5,a5@(-8)
lsrl #3,d2
subql #3,d3
movel a5@(-4),d0
addl a5@(-8),d0
cmpl a5@(-20),d0
jls L588
moveq #1,d0
jra L528
L588:
nop
L589:
subql #1,a5@(-8)
moveq #-1,d5
cmpl a5@(-8),d5
jne L591
jra L590
L591:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
clrl a0@(-1312)
addql #1,a5@(-4)
jra L589
L590:
clrl a5@(-12)
jra L592
L582:
L593:
moveq #6,d5
cmpl d3,d5
jcc L595
jra L594
L595:
movel _inptr,d5
cmpl _insize,d5
jcc L596
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L597
L596:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L597:
addql #8,d3
jra L593
L594:
moveq #127,d0
andl d2,d0
moveq #11,d5
addl d0,d5
movel d5,a5@(-8)
lsrl #7,d2
subql #7,d3
movel a5@(-4),d0
addl a5@(-8),d0
cmpl a5@(-20),d0
jls L598
moveq #1,d0
jra L528
L598:
nop
L599:
subql #1,a5@(-8)
moveq #-1,d5
cmpl a5@(-8),d5
jne L601
jra L600
L601:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea a5@(0,d0:l),a0
clrl a0@(-1312)
addql #1,a5@(-4)
jra L599
L600:
clrl a5@(-12)
L592:
L581:
L570:
jra L561
L562:
movel a5@(-24),sp@-
jbsr _huft_free
addqw #4,sp
movel d2,_bb
movel d3,_bk
movel _lbits,a5@(-32)
lea a5@(-32),a0
movel a0,sp@-
lea a5@(-24),a0
movel a0,sp@-
pea _cplext
pea _cplens
pea 257:w
movel a5@(-44),sp@-
lea a5@(-1312),a0
movel a0,sp@-
jbsr _huft_build
addw #28,sp
movel d0,a5@(-4)
tstl a5@(-4)
jeq L602
moveq #1,d5
cmpl a5@(-4),d5
jne L603
pea LC134
jbsr _error
addqw #4,sp
movel a5@(-24),sp@-
jbsr _huft_free
addqw #4,sp
L603:
movel a5@(-4),d0
jra L528
L602:
movel _dbits,a5@(-36)
lea a5@(-36),a0
movel a0,sp@-
lea a5@(-28),a0
movel a0,sp@-
pea _cpdext
pea _cpdist
clrl sp@-
movel a5@(-48),sp@-
lea a5@(-1312),a0
movel a5@(-44),d0
movel d0,d1
movel d1,d0
asll #2,d0
addl d0,a0
movel a0,sp@-
jbsr _huft_build
addw #28,sp
movel d0,a5@(-4)
tstl a5@(-4)
jeq L604
moveq #1,d5
cmpl a5@(-4),d5
jne L605
pea LC135
jbsr _error
addqw #4,sp
movel a5@(-28),sp@-
jbsr _huft_free
addqw #4,sp
L605:
movel a5@(-24),sp@-
jbsr _huft_free
addqw #4,sp
movel a5@(-4),d0
jra L528
L604:
movel a5@(-36),sp@-
movel a5@(-32),sp@-
movel a5@(-28),sp@-
movel a5@(-24),sp@-
jbsr _inflate_codes
addqw #8,sp
addqw #8,sp
tstl d0
jeq L606
moveq #1,d0
jra L528
L606:
movel a5@(-24),sp@-
jbsr _huft_free
addqw #4,sp
movel a5@(-28),sp@-
jbsr _huft_free
addqw #4,sp
clrl d0
jra L528
L528:
moveml a5@(-1328),#0x3c
unlk a5
rts
.even
_inflate_block:
link a5,#-4
moveml #0x3800,sp@-
movel _bb,d2
movel _bk,d3
L608:
tstl d3
jeq L610
jra L609
L610:
movel _inptr,d4
cmpl _insize,d4
jcc L611
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L612
L611:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L612:
addql #8,d3
jra L608
L609:
movel a5@(8),a0
moveq #1,d4
andl d2,d4
movel d4,a0@
lsrl #1,d2
subql #1,d3
L613:
moveq #1,d4
cmpl d3,d4
jcc L615
jra L614
L615:
movel _inptr,d4
cmpl _insize,d4
jcc L616
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll d3,d0
orl d0,d2
addql #1,_inptr
jra L617
L616:
jbsr _fill_inbuf
clrl d1
moveb d0,d1
movel d1,d0
asll d3,d0
orl d0,d2
L617:
addql #8,d3
jra L613
L614:
moveq #3,d4
andl d2,d4
movel d4,a5@(-4)
lsrl #2,d2
subql #2,d3
movel d2,_bb
movel d3,_bk
moveq #2,d4
cmpl a5@(-4),d4
jne L618
jbsr _inflate_dynamic
movel d0,d1
movel d1,d0
jra L607
L618:
tstl a5@(-4)
jne L619
jbsr _inflate_stored
movel d0,d1
movel d1,d0
jra L607
L619:
moveq #1,d4
cmpl a5@(-4),d4
jne L620
jbsr _inflate_fixed
movel d0,d1
movel d1,d0
jra L607
L620:
moveq #2,d0
jra L607
L607:
moveml a5@(-16),#0x1c
unlk a5
rts
.even
_inflate:
link a5,#-16
clrl _outcnt
clrl _bk
clrl _bb
clrl a5@(-12)
L622:
clrl _hufts
lea a5@(-16),a0
movel a0,sp@-
jbsr _gzip_mark
addqw #4,sp
lea a5@(-4),a0
movel a0,sp@-
jbsr _inflate_block
addqw #4,sp
movel d0,a5@(-8)
tstl a5@(-8)
jeq L625
lea a5@(-16),a0
movel a0,sp@-
jbsr _gzip_release
addqw #4,sp
movel a5@(-8),d0
jra L621
L625:
lea a5@(-16),a0
movel a0,sp@-
jbsr _gzip_release
addqw #4,sp
movel _hufts,d1
cmpl a5@(-12),d1
jls L626
movel _hufts,a5@(-12)
L626:
L624:
tstl a5@(-4)
jeq L627
jra L623
L627:
jra L622
L623:
nop
L628:
moveq #7,d1
cmpl _bk,d1
jcs L630
jra L629
L630:
subql #8,_bk
subql #1,_inptr
jra L628
L629:
jbsr _flush_window
clrl d0
jra L621
L621:
unlk a5
rts
.data
.even
_crc:
.long -1
.even
_p.82:
.long 0
.long 1
.long 2
.long 4
.long 5
.long 7
.long 8
.long 10
.long 11
.long 12
.long 16
.long 22
.long 23
.long 26
.text
.even
_makecrc:
link a5,#-16
movel d2,sp@-
clrl a5@(-8)
clrl a5@(-12)
L632:
moveq #13,d2
cmpl a5@(-12),d2
jcc L635
jra L633
L635:
movel a5@(-12),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _p.82,a0
moveq #31,d2
subl a0@(d0:l),d2
movel d2,d0
moveq #1,d1
movel d1,d2
asll d0,d2
movel d2,d0
orl d0,a5@(-8)
L634:
addql #1,a5@(-12)
jra L632
L633:
clrl _crc_32_tab
moveq #1,d2
movel d2,a5@(-12)
L636:
cmpl #255,a5@(-12)
jle L639
jra L637
L639:
clrl a5@(-4)
movel a5@(-12),d2
orw #256,d2
movel d2,a5@(-16)
L640:
moveq #1,d2
cmpl a5@(-16),d2
jne L643
jra L641
L643:
movel a5@(-4),d1
movel d1,d0
lsrl #1,d0
moveq #1,d1
andl a5@(-4),d1
tstl d1
jeq L644
movel a5@(-8),d2
eorl d2,d0
L644:
movel d0,a5@(-4)
moveq #1,d0
andl a5@(-16),d0
tstl d0
jeq L645
movel a5@(-8),d2
eorl d2,a5@(-4)
L645:
L642:
movel a5@(-16),d0
movel d0,d1
asrl #1,d1
movel d1,a5@(-16)
jra L640
L641:
movel a5@(-12),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _crc_32_tab,a0
movel a5@(-4),a0@(d0:l)
L638:
addql #1,a5@(-12)
jra L636
L637:
L631:
movel a5@(-20),d2
unlk a5
rts
LC136:
.ascii "bad gzip magic numbers\0"
LC137:
.ascii "internal error, invalid method\0"
LC138:
.ascii "Input is encrypted\12\0"
LC139:
.ascii "Multi part input\12\0"
LC140:
.ascii "Input has invalid flags\12\0"
LC141:
.ascii "invalid compressed format (err=1)\0"
LC142:
.ascii "invalid compressed format (err=2)\0"
LC143:
.ascii "out of memory\0"
LC144:
.ascii "invalid compressed format (other)\0"
LC145:
.ascii "crc error\0"
LC146:
.ascii "length error\0"
.even
_gunzip:
link a5,#-24
movel d3,sp@-
movel d2,sp@-
clrl a5@(-10)
clrl a5@(-14)
movel _inptr,d3
cmpl _insize,d3
jcc L647
movel _inbuf,a0
addl _inptr,a0
moveb a0@,d2
addql #1,_inptr
jra L648
L647:
jbsr _fill_inbuf
moveb d0,d2
L648:
moveb d2,a5@(-4)
movel _inptr,d3
cmpl _insize,d3
jcc L649
movel _inbuf,a0
addl _inptr,a0
moveb a0@,d2
addql #1,_inptr
jra L650
L649:
jbsr _fill_inbuf
moveb d0,d2
L650:
moveb d2,a5@(-3)
movel _inptr,d3
cmpl _insize,d3
jcc L651
movel _inbuf,a0
addl _inptr,a0
moveb a0@,d2
addql #1,_inptr
jra L652
L651:
jbsr _fill_inbuf
moveb d0,d2
L652:
moveb d2,a5@(-5)
cmpb #31,a5@(-4)
jne L654
cmpb #139,a5@(-3)
jeq L653
cmpb #158,a5@(-3)
jne L654
jra L653
L654:
pea LC136
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L653:
cmpb #8,a5@(-5)
jeq L655
pea LC137
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L655:
movel _inptr,d3
cmpl _insize,d3
jcc L656
movel _inbuf,a0
addl _inptr,a0
moveb a0@,d2
addql #1,_inptr
jra L657
L656:
jbsr _fill_inbuf
moveb d0,d2
L657:
moveb d2,a5@(-1)
moveb a5@(-1),d0
andb #32,d0
tstb d0
jeq L658
pea LC138
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L658:
moveb a5@(-1),d0
andb #2,d0
tstb d0
jeq L659
pea LC139
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L659:
moveb a5@(-1),d0
andb #192,d0
tstb d0
jeq L660
pea LC140
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L660:
movel _inptr,d3
cmpl _insize,d3
jcc L661
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L662
L661:
jbsr _fill_inbuf
L662:
movel _inptr,d3
cmpl _insize,d3
jcc L663
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L664
L663:
jbsr _fill_inbuf
L664:
movel _inptr,d3
cmpl _insize,d3
jcc L665
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L666
L665:
jbsr _fill_inbuf
L666:
movel _inptr,d3
cmpl _insize,d3
jcc L667
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L668
L667:
jbsr _fill_inbuf
L668:
movel _inptr,d3
cmpl _insize,d3
jcc L669
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L670
L669:
jbsr _fill_inbuf
L670:
movel _inptr,d3
cmpl _insize,d3
jcc L671
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L672
L671:
jbsr _fill_inbuf
L672:
moveb a5@(-1),d0
andb #4,d0
tstb d0
jeq L673
movel _inptr,d3
cmpl _insize,d3
jcc L674
movel _inbuf,a0
addl _inptr,a0
clrl d2
moveb a0@,d2
addql #1,_inptr
jra L675
L674:
jbsr _fill_inbuf
movel d0,d2
L675:
movel d2,a5@(-22)
movel _inptr,d3
cmpl _insize,d3
jcc L676
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll #8,d0
movel d0,d2
orl a5@(-22),d2
addql #1,_inptr
jra L677
L676:
jbsr _fill_inbuf
movel d0,d1
asll #8,d1
movel d1,d2
orl a5@(-22),d2
L677:
movel d2,a5@(-22)
L678:
subql #1,a5@(-22)
moveq #-1,d3
cmpl a5@(-22),d3
jne L680
jra L679
L680:
movel _inptr,d3
cmpl _insize,d3
jcc L681
movel _inbuf,d0
addl _inptr,d0
addql #1,_inptr
jra L682
L681:
jbsr _fill_inbuf
L682:
jra L678
L679:
L673:
moveb a5@(-1),d0
andb #8,d0
tstb d0
jeq L683
L684:
movel _inptr,d3
cmpl _insize,d3
jcc L687
movel _inbuf,a0
addl _inptr,a0
addql #1,_inptr
tstb a0@
jne L686
jra L688
L687:
jbsr _fill_inbuf
tstl d0
jne L686
jra L688
L688:
jra L685
L686:
jra L684
L685:
L683:
moveb a5@(-1),d0
andb #16,d0
tstb d0
jeq L689
L690:
movel _inptr,d3
cmpl _insize,d3
jcc L693
movel _inbuf,a0
addl _inptr,a0
addql #1,_inptr
tstb a0@
jne L692
jra L694
L693:
jbsr _fill_inbuf
tstl d0
jne L692
jra L694
L694:
jra L691
L692:
jra L690
L691:
L689:
jbsr _inflate
movel d0,a5@(-18)
tstl a5@(-18)
jeq L695
movel a5@(-18),d0
moveq #1,d3
cmpl d0,d3
jeq L698
moveq #1,d3
cmpl d0,d3
jlt L703
tstl d0
jeq L697
jra L701
L703:
moveq #2,d3
cmpl d0,d3
jeq L699
moveq #3,d3
cmpl d0,d3
jeq L700
jra L701
L697:
jra L696
L698:
pea LC141
jbsr _error
addqw #4,sp
jra L696
L699:
pea LC142
jbsr _error
addqw #4,sp
jra L696
L700:
pea LC143
jbsr _error
addqw #4,sp
jra L696
L701:
pea LC144
jbsr _error
addqw #4,sp
L696:
moveq #-1,d0
jra L646
L695:
movel _inptr,d3
cmpl _insize,d3
jcc L704
movel _inbuf,a0
addl _inptr,a0
clrl d2
moveb a0@,d2
addql #1,_inptr
jra L705
L704:
jbsr _fill_inbuf
movel d0,d2
L705:
movel d2,a5@(-10)
movel _inptr,d3
cmpl _insize,d3
jcc L706
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll #8,d0
movel d0,d2
orl a5@(-10),d2
addql #1,_inptr
jra L707
L706:
jbsr _fill_inbuf
movel d0,d1
asll #8,d1
movel d1,d2
orl a5@(-10),d2
L707:
movel d2,a5@(-10)
movel _inptr,d3
cmpl _insize,d3
jcc L708
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
swap d0
clrw d0
movel d0,d2
orl a5@(-10),d2
addql #1,_inptr
jra L709
L708:
jbsr _fill_inbuf
movel d0,d1
swap d1
clrw d1
movel d1,d2
orl a5@(-10),d2
L709:
movel d2,a5@(-10)
movel _inptr,d3
cmpl _insize,d3
jcc L710
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
moveq #24,d3
asll d3,d0
movel d0,d2
orl a5@(-10),d2
addql #1,_inptr
jra L711
L710:
jbsr _fill_inbuf
movel d0,d1
moveq #24,d3
asll d3,d1
movel d1,d2
orl a5@(-10),d2
L711:
movel d2,a5@(-10)
movel _inptr,d3
cmpl _insize,d3
jcc L712
movel _inbuf,a0
addl _inptr,a0
clrl d2
moveb a0@,d2
addql #1,_inptr
jra L713
L712:
jbsr _fill_inbuf
movel d0,d2
L713:
movel d2,a5@(-14)
movel _inptr,d3
cmpl _insize,d3
jcc L714
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
asll #8,d0
movel d0,d2
orl a5@(-14),d2
addql #1,_inptr
jra L715
L714:
jbsr _fill_inbuf
movel d0,d1
asll #8,d1
movel d1,d2
orl a5@(-14),d2
L715:
movel d2,a5@(-14)
movel _inptr,d3
cmpl _insize,d3
jcc L716
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
swap d0
clrw d0
movel d0,d2
orl a5@(-14),d2
addql #1,_inptr
jra L717
L716:
jbsr _fill_inbuf
movel d0,d1
swap d1
clrw d1
movel d1,d2
orl a5@(-14),d2
L717:
movel d2,a5@(-14)
movel _inptr,d3
cmpl _insize,d3
jcc L718
movel _inbuf,a0
addl _inptr,a0
clrl d0
moveb a0@,d0
moveq #24,d3
asll d3,d0
movel d0,d2
orl a5@(-14),d2
addql #1,_inptr
jra L719
L718:
jbsr _fill_inbuf
movel d0,d1
moveq #24,d3
asll d3,d1
movel d1,d2
orl a5@(-14),d2
L719:
movel d2,a5@(-14)
movel _crc,d0
notl d0
cmpl a5@(-10),d0
jeq L720
pea LC145
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L720:
movel a5@(-14),d3
cmpl _bytes_out,d3
jeq L721
pea LC146
jbsr _error
addqw #4,sp
moveq #-1,d0
jra L646
L721:
clrl d0
jra L646
L646:
movel a5@(-32),d2
movel a5@(-28),d3
unlk a5
rts
.even
_gzip_mark:
link a5,#0
L722:
unlk a5
rts
.even
_gzip_release:
link a5,#0
L723:
unlk a5
rts
.even
_fill_inbuf:
link a5,#0
movel a2,sp@-
tstl _exit_code
jeq L725
moveq #-1,d0
jra L724
L725:
movel _linuxboot_args,a0
pea 4096:w
movel _inbuf,sp@-
movel _Zinfd,sp@-
movel a0@(1476),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel d0,_insize
tstl _insize
jne L726
moveq #-1,d0
jra L724
L726:
moveq #1,d1
movel d1,_inptr
movel _inbuf,a0
clrl d0
moveb a0@,d0
jra L724
L724:
movel a5@(-4),a2
unlk a5
rts
LC147:
.ascii "Compressed image too large! Aborting.\12\0"
LC148:
.ascii "Out of memory for decompresing kernel image\12\0"
.even
_flush_window:
link a5,#-20
moveml #0x3020,sp@-
movel _crc,a5@(-4)
movel _Zwpos,d0
movel d0,d1
swap d1
extl d1
movel d1,a5@(-18)
tstl _exit_code
jeq L728
jra L727
L728:
moveq #31,d3
cmpl a5@(-18),d3
jge L729
pea LC147
jbsr _error
addqw #4,sp
jra L727
L729:
movel a5@(-18),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
tstl a0@(d0:l)
jne L730
pea 5:w
movel #65536,sp@-
jbsr _AllocMem
addqw #8,sp
movel a5@(-18),d1
movel d1,d2
movel d2,d1
asll #2,d1
lea _ZFile,a0
movel d0,a0@(d1:l)
tstl d0
jne L731
pea LC148
jbsr _error
addqw #4,sp
jra L727
L731:
L730:
movel _outcnt,sp@-
movel _window,sp@-
movel a5@(-18),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
movel _Zwpos,d1
andl #65535,d1
movel d1,d3
addl a0@(d0:l),d3
movel d3,d0
movel d0,sp@-
jbsr _memcpy
addqw #8,sp
addqw #4,sp
movel _outcnt,d3
addl d3,_Zwpos
movel _Zwpos,d0
andl #1023,d0
tstl d0
jne L732
movel _linuxboot_args,a0
pea 46:w
movel a0@(1460),a2
jbsr a2@
addqw #4,sp
L732:
movel _window,a5@(-12)
clrl a5@(-8)
L733:
movel a5@(-8),d3
cmpl _outcnt,d3
jcs L736
jra L734
L736:
movel a5@(-12),a0
moveb a0@,a5@(-13)
addql #1,a5@(-12)
clrl d0
moveb a5@(-13),d0
movel a5@(-4),d3
eorl d3,d0
movel d0,d1
andl #255,d1
movel d1,d2
movel d2,d0
asll #2,d0
lea _crc_32_tab,a0
movel a5@(-4),d2
movel d2,d1
lsrl #8,d1
movel a0@(d0:l),d3
eorl d1,d3
movel d3,a5@(-4)
L735:
addql #1,a5@(-8)
jra L733
L734:
movel a5@(-4),_crc
movel _outcnt,d3
addl d3,_bytes_out
clrl _outcnt
L727:
moveml a5@(-32),#0x40c
unlk a5
rts
LC149:
.ascii "\12%s\0"
.even
_error:
link a5,#0
movel a2,sp@-
movel _linuxboot_args,a0
movel a5@(8),sp@-
pea LC149
movel a0@(1464),a2
jbsr a2@
addqw #8,sp
moveq #1,d0
movel d0,_exit_code
L737:
movel a5@(-4),a2
unlk a5
rts
LC150:
.ascii "Couldn't allocate gunzip buffer\12\0"
LC151:
.ascii "Couldn't allocate gunzip window\12\0"
LC152:
.ascii "Couldn't allocate gunzip stack\12\0"
LC153:
.ascii "Uncompressing kernel image \0"
LC154:
.ascii "done\12\0"
.even
_load_zkernel:
link a5,#-12
movel a2,sp@-
movel d2,sp@-
moveq #-1,d2
movel d2,a5@(-8)
clrl a5@(-4)
L740:
moveq #31,d2
cmpl a5@(-4),d2
jge L743
jra L741
L743:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
clrl a0@(d0:l)
L742:
addql #1,a5@(-4)
jra L740
L741:
movel a5@(8),_Zinfd
movel _linuxboot_args,a0
clrl sp@-
movel a5@(8),sp@-
movel a0@(1472),a2
jbsr a2@
addqw #8,sp
pea 5:w
pea 4096:w
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,_inbuf
tstl d1
jne L744
movel _linuxboot_args,a0
pea LC150
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L745
L744:
pea 5:w
movel #32768,sp@-
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,_window
tstl d1
jne L746
movel _linuxboot_args,a0
pea LC151
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L747
L746:
pea 5:w
pea 16384:w
jbsr _AllocMem
addqw #8,sp
movel d0,d1
movel d1,a5@(-12)
tstl d1
jne L748
movel _linuxboot_args,a0
pea LC152
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jra L749
L748:
movel _linuxboot_args,a0
pea LC153
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
jbsr _makecrc
movel a5@(-12),d0
addl #16384,d0
movel d0,sp@-
pea _gunzip
jbsr _call_sub
addqw #8,sp
movel d0,a5@(-8)
tstl a5@(-8)
jne L750
movel _linuxboot_args,a0
pea LC154
movel a0@(1452),a2
jbsr a2@
addqw #4,sp
L750:
movel _Zwpos,_ZFileSize
pea 16384:w
movel a5@(-12),sp@-
jbsr _FreeMem
addqw #8,sp
L749:
movel #32768,sp@-
movel _window,sp@-
jbsr _FreeMem
addqw #8,sp
clrl _window
L747:
pea 4096:w
movel _inbuf,sp@-
jbsr _FreeMem
addqw #8,sp
clrl _inbuf
L745:
movel _linuxboot_args,a0
movel _Zinfd,sp@-
movel a0@(1480),a2
jbsr a2@
addqw #4,sp
movel a5@(-8),d0
jra L739
L739:
movel a5@(-20),d2
movel a5@(-16),a2
unlk a5
rts
.even
_KRead:
link a5,#-16
movel a2,sp@-
movel d2,sp@-
clrl a5@(-4)
tstl _ZFileSize
jne L752
movel _linuxboot_args,a0
movel a5@(16),sp@-
movel a5@(12),sp@-
movel a5@(8),sp@-
movel a0@(1476),a2
jbsr a2@
addqw #8,sp
addqw #4,sp
movel d0,d1
movel d1,d0
jra L751
L752:
movel _ZFpos,d0
addl a5@(16),d0
cmpl _ZFileSize,d0
jle L753
movel _ZFileSize,d2
subl _ZFpos,d2
movel d2,a5@(16)
L753:
nop
L754:
tstl a5@(16)
jgt L756
jra L755
L756:
movel _ZFpos,d0
movel d0,d1
swap d1
extl d1
movel d1,a5@(-8)
movel a5@(-8),d0
addql #1,d0
movel d0,d1
swap d1
clrw d1
movel d1,a5@(-12)
movel a5@(16),a5@(-16)
movel _ZFpos,d0
addl a5@(-16),d0
cmpl a5@(-12),d0
jls L757
movel a5@(-12),d2
subl _ZFpos,d2
movel d2,a5@(-16)
L757:
movel a5@(-16),sp@-
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
movel _ZFpos,d1
andl #65535,d1
movel d1,d2
addl a0@(d0:l),d2
movel d2,d0
movel d0,sp@-
movel a5@(12),sp@-
jbsr _memcpy
addqw #8,sp
addqw #4,sp
movel a5@(-16),d2
subl d2,a5@(16)
movel a5@(-16),d2
addl d2,a5@(12)
movel a5@(-16),d2
addl d2,a5@(-4)
movel a5@(-16),d2
addl d2,_ZFpos
movel _ZFpos,d2
cmpl a5@(-12),d2
jne L758
movel #65536,sp@-
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
movel a0@(d0:l),sp@-
jbsr _FreeMem
addqw #8,sp
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
clrl a0@(d0:l)
L758:
jra L754
L755:
movel a5@(-4),d0
jra L751
L751:
movel a5@(-24),d2
movel a5@(-20),a2
unlk a5
rts
.even
_KSeek:
link a5,#-12
movel a2,sp@-
tstl _ZFileSize
jne L760
movel _linuxboot_args,a0
movel a5@(12),sp@-
movel a5@(8),sp@-
movel a0@(1472),a2
jbsr a2@
addqw #8,sp
movel d0,d1
movel d1,d0
jra L759
L760:
movel _ZFpos,a5@(-4)
movel a5@(12),_ZFpos
tstl _ZFpos
jge L761
clrl _ZFpos
moveq #-1,d0
jra L759
jra L762
L761:
movel _ZFpos,a1
cmpl _ZFileSize,a1
jle L763
movel _ZFileSize,_ZFpos
moveq #-1,d0
jra L759
L763:
L762:
movel a5@(-4),d0
movel d0,d1
clrw d1
swap d1
movel d1,a5@(-8)
movel _ZFpos,d0
movel d0,d1
swap d1
extl d1
movel d1,a5@(-12)
L764:
movel a5@(-8),a1
cmpl a5@(-12),a1
jcs L766
jra L765
L766:
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
tstl a0@(d0:l)
jeq L767
movel #65536,sp@-
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
movel a0@(d0:l),sp@-
jbsr _FreeMem
addqw #8,sp
movel a5@(-8),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
clrl a0@(d0:l)
L767:
addql #1,a5@(-8)
jra L764
L765:
movel _ZFpos,d0
jra L759
L759:
movel a5@(-16),a2
unlk a5
rts
.even
_free_zfile:
link a5,#-4
movel d2,sp@-
nop
clrl a5@(-4)
L769:
moveq #31,d2
cmpl a5@(-4),d2
jge L772
jra L770
L772:
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
tstl a0@(d0:l)
jeq L773
movel #65536,sp@-
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
movel a0@(d0:l),sp@-
jbsr _FreeMem
addqw #8,sp
movel a5@(-4),d0
movel d0,d1
movel d1,d0
asll #2,d0
lea _ZFile,a0
clrl a0@(d0:l)
L773:
L771:
addql #1,a5@(-4)
jra L769
L770:
L768:
movel a5@(-8),d2
unlk a5
rts
.even
_KClose:
link a5,#0
movel a2,sp@-
tstl _ZFileSize
jeq L775
jbsr _free_zfile
clrl _ZFileSize
jra L776
L775:
movel _linuxboot_args,a0
movel a5@(8),sp@-
movel a0@(1480),a2
jbsr a2@
addqw #4,sp
L776:
clrl d0
jra L774
L774:
movel a5@(-4),a2
unlk a5
rts
.even
_AllocMem:
link a5,#0
moveml #0x3002,sp@-
movel a5@(8),d2
movel a5@(12),d3
movel _SysBase,a6
movel d2,d0
movel d3,d1
#APP
jsr a6@(-0xc6)
#NO_APP
jra L1
L1:
moveml a5@(-12),#0x400c
unlk a5
rts
.even
_AllocVec:
link a5,#0
moveml #0x3002,sp@-
movel a5@(8),d2
movel a5@(12),d3
movel _SysBase,a6
movel d2,d0
movel d3,d1
#APP
jsr a6@(-0x2ac)
#NO_APP
jra L2
L2:
moveml a5@(-12),#0x400c
unlk a5
rts
.even
_CacheControl:
link a5,#0
moveml #0x3002,sp@-
movel a5@(8),d2
movel a5@(12),d3
movel _SysBase,a6
movel d2,d0
movel d3,d1
#APP
jsr a6@(-0x288)
#NO_APP
jra L3
L3:
moveml a5@(-12),#0x400c
unlk a5
rts
.even
_Disable:
link a5,#0
movel a6,sp@-
movel _SysBase,a6
#APP
jsr a6@(-0x78)
#NO_APP
L4:
movel a5@(-4),a6
unlk a5
rts
.even
_Enable:
link a5,#0
movel a6,sp@-
movel _SysBase,a6
#APP
jsr a6@(-0x7e)
#NO_APP
L5:
movel a5@(-4),a6
unlk a5
rts
.even
_FindResident:
link a5,#0
movel a6,sp@-
movel d2,sp@-
movel a5@(8),d2
movel _SysBase,a6
movel d2,a1
#APP
jsr a6@(-0x60)
#NO_APP
jra L6
L6:
movel a5@(-8),d2
movel a5@(-4),a6
unlk a5
rts
.even
_FreeMem:
link a5,#0
moveml #0x3002,sp@-
movel a5@(8),d2
movel a5@(12),d3
movel _SysBase,a6
movel d2,a1
movel d3,d0
#APP
jsr a6@(-0xd2)
#NO_APP
L7:
moveml a5@(-12),#0x400c
unlk a5
rts
.even
_FreeVec:
link a5,#0
movel a6,sp@-
movel d2,sp@-
movel a5@(8),d2
movel _SysBase,a6
movel d2,a1
#APP
jsr a6@(-0x2b2)
#NO_APP
L8:
movel a5@(-8),d2
movel a5@(-4),a6
unlk a5
rts
.even
_OpenResource:
link a5,#0
movel a6,sp@-
movel d2,sp@-
movel a5@(8),d2
movel _SysBase,a6
movel d2,a1
#APP
jsr a6@(-0x1f2)
#NO_APP
jra L9
L9:
movel a5@(-8),d2
movel a5@(-4),a6
unlk a5
rts
.even
_SuperState:
link a5,#0
movel a6,sp@-
movel _SysBase,a6
#APP
jsr a6@(-0x96)
#NO_APP
jra L10
L10:
movel a5@(-4),a6
unlk a5
rts
.even
_Supervisor:
link a5,#0
moveml #0x2102,sp@-
movel a5@(8),d2
movel _SysBase,a6
movel d2,d7
#APP
exg d7,a5;jsr a6@(-0x1e);exg d7,a5
#NO_APP
jra L11
L11:
moveml a5@(-12),#0x4084
unlk a5
rts
.even
_FindConfigDev:
link a5,#0
moveml #0x3802,sp@-
movel a5@(8),d2
movel a5@(12),d3
movel a5@(16),d4
movel _ExpansionBase,a6
movel d2,a0
movel d3,d0
movel d4,d1
#APP
jsr a6@(-0x48)
#NO_APP
jra L12
L12:
moveml a5@(-16),#0x401c
unlk a5
rts
.even
_LoadView:
link a5,#0
movel a6,sp@-
movel d2,sp@-
movel a5@(8),d2
movel _GfxBase,a6
movel d2,a1
#APP
jsr a6@(-0xde)
#NO_APP
L13:
movel a5@(-8),d2
movel a5@(-4),a6
unlk a5
rts
.even
_SetChipRev:
link a5,#0
movel a6,sp@-
movel d2,sp@-
movel a5@(8),d2
movel _GfxBase,a6
movel d2,d0
#APP
jsr a6@(-0x378)
#NO_APP
jra L14
L14:
movel a5@(-8),d2
movel a5@(-4),a6
unlk a5
rts
.even
_disable_mmu:
link a5,#0
movel _SysBase,a0
movew a0@(296),d0
andw #8,d0
tstw d0
jeq L16
#APP
moveq #0,d0;.long 0x4e7b0003;.long 0x4e7b0004;.long 0x4e7b0005;.long 0x4e7b0006;.long 0x4e7b0007
#NO_APP
jra L17
L16:
#APP
subl #4,sp;pmove tc,sp@;bclr #7,sp@;pmove sp@,tc;addl #4,sp
#NO_APP
movel _SysBase,a0
movew a0@(296),d0
andw #4,d0
tstw d0
jeq L18
#APP
clrl sp@-;.long 0xf0170800;.long 0xf0170c00;addql #4,sp
#NO_APP
L18:
L17:
L15:
unlk a5
rts
.lcomm _kexec,32
.lcomm _kexec_elf,52
.lcomm _linuxboot_args,4
.comm _bi,1428
.lcomm _compat_bootinfo,1422
.lcomm _bi_size,4
.lcomm _bi_union,4096
.lcomm _boardresetfuncs,64
.lcomm _ZFile,128
.lcomm _inbuf,4
.lcomm _window,4
.lcomm _bb,4
.lcomm _bk,4
.lcomm _hufts,4
.lcomm _crc_32_tab,1024
.even
_call_sub:
link a5,#0
moveml #0x3020,sp@-
movel a5@(8),d2
movel a5@(12),d3
movel d2,a0
movel d3,a1
#APP
movel sp,a2;movel a1,sp;jsr a0@;movel a2,sp
#NO_APP
jra L738
L738:
moveml a5@(-12),#0x40c
unlk a5
rts